Page 367 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 367
41
42 /*--- 꼬리 노드를 삭제 ---*/
43 void RemoveRear(List *list);
44
45 /*--- 선택한 노드를 삭제 ---*/
46 void RemoveCurrent(List *list);
47
48 /*--- 모든 노드를 삭제 ---*/
49 void Clear(List *list);
50
51 /*--- 선택한 노드의 데이터를 출력 ---*/
52 void PrintCurrent(const List *list);
53
54 /*--- 선택한 노드의 데이터를 출력(줄 바꿈 문자 추가) ---*/
55 void PrintLnCurrent(const List *list);
56
57 /*--- 모든 노드의 데이터를 출력 ---*/
58 void Print(const List *list);
59
60 /*--- 연결 리스트 종료 ---*/
61 void Terminate(List *list);
62 #endif
실습 9-5[A] •완성 파일 chap09/ArrayLinkedList.c
01 /* 커서로 만든 연결 리스트(소스) */
02 #include <stdio.h>
03 #include <stdlib.h>
04 #include "Member.h"
05 #include "ArrayLinkedList.h"
06
07 /*--- 삽입할 레코드의 인덱스를 구한 다음 반환 ---*/
08 static Index GetIndex (List *list)
09 {
10 if(list->deleted == Null) /* 삭제할 레코드가 없는 경우 */
11 return ++(list->max);
12 else {
13 Index rec = list->deleted;
14 list->deleted = list->n[rec].Dnext;
15 return rec;
09•리스트 367