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

19
                     20  /*--- 리스트가 비어 있는지 검사 ---*/
                     21  static int IsEmpty (const Dlist *list)
                     22  {
                     23    return list->head->next == list->head;
                     24  }
                     25
                     26  /*--- 리스트를 초기화 ---*/
                     27  void Initialize (Dlist *list)
                     28  {
                     29    Dnode *dummyNode = AllocDNode();    /* 더미 노드 생성 */
                     30    list->head = list->crnt = dummyNode;
                     31    dummyNode->prev = dummyNode->next = dummyNode;
                     32  }
                     33
                     34  /*--- 선택한 노드의 데이터를 출력 ---*/
                     35  void PrintCurrent (const Dlist *list)
                     36  {
                     37    if(IsEmpty(list))
                     38      printf("선택한 노드가 없습니다.");
                     39    else
                     40      PrintMember(&list->crnt->data);
                     41  }
                     42
                     43  /*--- 선택한 노드의 데이터를 출력(줄 바꿈 문자 추가) ---*/
                     44  void PrintLnCurrent (const Dlist *list)
                     45  {
                     46    PrintCurrent(list);
                     47    putchar('\n');
                     48  }
                     49                                                       (실습 9-8[B]에서 계속)



                   노드를 생성하는 AllocDnode 함수
                   AllocDnode 함수는 Dnode형 객체를 생성하고 해당 객체의 포인터를 반환하는 함수입니다.


                   노드의 멤버 값을 설정하는 SetDnode 함수
                   SetDnode 함수는 Dnode형 객체의 멤버 값을 설정합니다. 이때 첫 번째 매개변수 n에 전달
                   받은 Dnode형 객체 포인터를 통해 멤버 값을 설정합니다. 객체 멤버인 data, prev, next에

                   두 번째 매개변수가 가리키는 객체의 값, 세 번째 매개변수와 네 번째 매개변수의 포인터 값
                   을 대입합니다.

                   386   C 알고리즘
   381   382   383   384   385   386   387   388   389   390   391