Page 370 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 370
30 }
31 }
32
33 /*--- 꼬리 노드를 삭제 ---*/
34 void RemoveRear (List *list)
35 {
36 if(list->head != Null) {
37 if(list->n[list->head].next == Null) /* 노드가 1개만 있으면 */
38 RemoveFront(list); /* 머리 노드를 삭제 */
39 else {
40 Index ptr = list->head;
41 Index pre;
42 while(list->n[ptr].next != Null) {
43 pre = ptr;
44 ptr = list->n[ptr].next;
45 }
46 list->n [pre].next = Null;
47 DeleteIndex(list, ptr);
48 list->crnt = pre;
49 }
50 }
51 }
52
53 /*--- 선택한 노드를 삭제 ---*/
54 void RemoveCurrent (List *list)
55 {
56 if(list->head != Null) {
57 if(list->crnt == list->head) /* 머리 노드가 선택되어 있으면 */
58 RemoveFront(list); /* 머리 노드를 삭제 */
59 else {
60 Index ptr = list->head;
61 while(list->n[ptr].next != list->crnt)
62 ptr = list->n[ptr].next;
63 list->n[ptr].next = list->n[list->crnt].next;
64 DeleteIndex(list, list->crnt);
65 list->crnt = ptr;
66 }
67 }
68 }
69
370 C 알고리즘