Page 366 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 366

실습 9-4                                           •완성 파일 chap09/ArrayLinkedList.h
                     01  /* 커서로 만든 연결 리스트(헤더) */
                     02  #ifndef ___ArrayLinkedList
                     03  #define ___ArrayLinkedList
                     04
                     05  #include "Member.h"  실습 11-1에서 작성
                     06
                     07  #define Null –1      /* 빈 커서 */
                     08
                     09  typedef int Index;   /* 커서의 자료형 */
                     10
                     11  /*--- 노드 ---*/
                     12  typedef struct {
                     13    Member data;    /* 데이터 */
                     14    Index next;     /* 다음 노드 */
                     15    Index Dnext;    /* 프리 리스트의 다음 노드 */
                     16  } Node;
                     17
                     18  /*--- 연결 리스트 ---*/
                     19  typedef struct {
                     20    Node *n;        /* 리스트 본체(배열) */
                     21    Index head;     /* 머리 노드 */
                     22    Index max;      /* 사용 중인 꼬리 레코드 */
                     23    Index deleted;   /* 프리 리스트의 머리 노드 */
                     24    Index crnt;     /* 선택한 노드 */
                     25  } List;
                     26
                     27  /*--- 연결 리스트를 초기화(가장 큰 요소 개수는 size) ---*/
                     28  void Initialize(List *list, int size);
                     29
                     30  /*--- 함수 compare로 x와 같은 노드를 검색 ---*/
                     31  Index search(List *list, const Member *x, int compare(const Member *x, const Member *y));
                     32
                     33  /*--- 머리에 노드를 삽입 ---*/
                     34  void InsertFront(List *list, const Member *x);
                     35
                     36  /*--- 꼬리에 노드를 삽입 ---*/
                     37  void InsertRear(List *list, const Member *x);
                     38
                     39  /*--- 머리 노드를 삭제 ---*/
                     40  void RemoveFront(List *list);




                   366   C 알고리즘
   361   362   363   364   365   366   367   368   369   370   371