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

09      while(ptr != list->head) {
                     10        PrintLnMember(&ptr->data);
                     11        ptr = ptr->next;           /* 다음 노드 선택 */
                     12      }
                     13    }
                     14  }
                     15
                     16  /*--- 모든 노드의 데이터를 리스트 순서의 역순으로 출력---*/
                     17  void PrintReverse (const Dlist *list)
                     18  {
                     19    if(IsEmpty(list))
                     20      puts("노드가 없습니다.");
                     21    else {
                     22      Dnode *ptr = list->head->prev;
                     23      puts("【모두 보기】");
                     24      while(ptr != list->head) {
                     25        PrintLnMember(&ptr->data);
                     26        ptr = ptr->prev;           /* 앞쪽 노드 선택 */
                     27      }
                     28    }
                     29  }
                     30
                     31  /*--- 선택한 노드를 다음으로 진행 ---*/
                     32  int Next (Dlist *list)
                     33  {
                     34    if(IsEmpty(list) || list->crnt->next == list->head)
                     35      return 0;                   /* 진행할 수 없음 */
                     36    list->crnt = list->crnt->next;
                     37    return 1;
                     38  }
                     39
                     40  /*--- 선택한 노드를 앞쪽으로 진행 ---*/
                     41  int Prev (Dlist *list)
                     42  {
                     43    if(IsEmpty(list) || list->crnt->prev == list->head)
                     44      return 0;                   /* 되돌아갈 수 없음 */
                     45    list->crnt = list->crnt->prev;
                     46    return 1;
                     47  }
                     48                                                       (실습 9-8[D]에서 계속)





                   390   C 알고리즘
   385   386   387   388   389   390   391   392   393   394   395