Page 369 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 369
56 list->crnt = ptr;
57 return ptr; /* 검색 성공 */
58 }
59 ptr = list->n[ptr].next;
60 }
61 return Null; /* 검색 실패 */
62 }
63 (실습 9-5[B]에서 계속)
실습 9-5[B] •완성 파일 chap09/ArrayLinkedList.c
01 /*--- 머리에 노드를 삽입 ---*/
02 void InsertFront (List *list, const Member *x)
03 {
04 Index ptr = list->head;
05 list->head = list->crnt = GetIndex(list);
06 SetNode(&list->n[list->head], x, ptr);
07 }
08
09 /*--- 꼬리에 노드를 삽입 ---*/
10 void InsertRear (List *list, const Member *x)
11 {
12 if(list->head == Null) /* 비어 있는 경우 */
13 InsertFront(list, x); /* 머리에 삽입 */
14 else {
15 Index ptr = list->head;
16 while(list->n[ptr].next != Null)
17 ptr = list->n[ptr].next;
18 list->n[ptr].next = list->crnt = GetIndex(list);
19 SetNode(&list->n[list->n[ptr].next], x, Null);
20 }
21 }
22
23 /*--- 머리 노드를 삭제 ---*/
24 void RemoveFront (List *list)
25 {
26 if(list->head != Null) {
27 Index ptr = list->n[list->head].next;
28 DeleteIndex(list, list->head);
29 list->head = list->crnt = ptr;
09•리스트 369