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

36  /*--- 꼬리 노드를 삭제 ---*/
                     37  void RemoveRear(List *list);
                     38
                     39  /*--- 선택한 노드를 삭제 ---*/
                     40  void RemoveCurrent(List *list);
                     41
                     42  /*--- 모든 노드를 삭제 ---*/
                     43  void Clear(List *list);
                     44
                     45  /*--- 선택한 노드의 데이터를 출력 ---*/
                     46  void PrintCurrent(const List *list);
                     47
                     48  /*--- 선택한 노드의 데이터를 출력(줄 바꿈 문자 포함) ---*/
                     49  void PrintLnCurrent(const List *list);
                     50
                     51  /*--- 모든 노드의 데이터를 리스트 순서대로 출력 ---*/
                     52  void Print(const List *list);
                     53
                     54  /*--- 연결 리스트 종료 ---*/
                     55  void Terminate(List *list);
                     56  #endif



                   위에서 head는 연결 리스트의 머리 노드를 가리키는 포인터이고, crnt는 현재 선택한 노드를
                   가리키는 포인터입니다. ‘검색’한 노드를 선택하고 ‘삭제’하는 용도로 사용합니다.

                      각 함수를 실행한 다음 crnt 값이 어떻게 변화하는지는 표 9-1(356쪽)에 정리해 두었습니다.
                      Member.h는 이후 프로그램에서도 계속 사용합니다.


                     실습 9-2[A]                                             •완성 파일 chap09/LinkedList.c
                     01  /* 포인터로 만든 연결 리스트(소스) */
                     02  #include <stdio.h>
                     03  #include <stdlib.h>
                     04  #include "Member.h"  실습 11-1에서 작성
                     05  #include "LinkedList.h"
                     06
                     07  /*--- 노드를 동적으로 생성 ---*/
                     08  static Node *AllocNode(void)
                     09  {
                     10    return calloc(1, sizeof(Node));
                     11  }




                   342   C 알고리즘
   337   338   339   340   341   342   343   344   345   346   347