본문 바로가기

더블링크드리스트2

C++ - 더블 링크드리스트로 구현한 삽입, 버블정렬 지난번처럼 설명을 자세하게 적고 싶었는데.. 하다보니 코드가 너무 길어졌네요 ;ㅁ; 리스트를 이용하여 구현한 삽입정렬, 버블정렬입니다. 배열로 구현한 삽입정렬(http://topnanis.tistory.com/12)과 버블정렬(http://topnanis.tistory.com/11)은 링크를 참조하세요. 싱글로 할 걸 굳이 더블 링크로 구현 한 이유는.. 퀵정렬을 구현하려다.. 그만 두었기 때문이죠.. 막판에 넣은 스왑 디파인아까워..ㅠ퀵정렬시에는 재귀 함수에 인자값으로 배열의 크기(+피봇), 시작지점이 필요하므로 더블링크드가 더 적합하겠다 싶었습니다(배열쪽이 훨씬 편리한 것 같아요) 아래에 소스 첨부하였습니다. #include #include #define SWAP(x,y,t) (t=x), (x=y),.. 2012. 6. 1.
C - 알고리즘 - 더블링크드리스트(상) 링크드리스트에는 현재위치를 뿅! 뛰어넘는 부분이 있답니다.(start=start->next) 이런 부분이 오기 전에 포인터에 잠시 이전주소를 저장시켰다가 뿅 넘고 나서는 저장 시켜뒀던 이전 주소를 새로 만들어진 구조체에 연결 시켜줍니다. 언제든 돌아 갈 수 있도록 말이예요~ㅎ #include #include #include typedef struct linked_list { int data; linked_list *prev; linked_list *next; //새로나온 아이 (구조체 머리) }link; int main(void) { int data_box[]={5,6,4,7,3,8,2,9,1,0,10}; int length=sizeof data_box/ sizeof data_box[0]; int num.. 2010. 6. 1.