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

56        list->crnt = ptr;
                         57        return ptr;     /* 검색 성공 */
                         58      }
                         59      ptr = list->n[ptr].next;
                         60    }
                         61    return Null;        /* 검색 실패 */
                         62  }
                         63                                                        (실습 9-5[B]에서 계속)


                         실습 9-5[B]                                          •완성 파일 chap09/ArrayLinkedList.c

                         01  /*--- 머리에 노드를 삽입 ---*/
                         02  void InsertFront (List *list, const Member *x)
                         03  {
                         04    Index ptr = list->head;
                         05    list->head = list->crnt = GetIndex(list);
                         06    SetNode(&list->n[list->head], x, ptr);
                         07  }
                         08
                         09  /*--- 꼬리에 노드를 삽입 ---*/
                         10  void InsertRear (List *list, const Member *x)
                         11  {
                         12    if(list->head == Null)    /* 비어 있는 경우 */
                         13      InsertFront(list, x);   /* 머리에 삽입 */
                         14    else {
                         15      Index ptr = list->head;
                         16      while(list->n[ptr].next != Null)
                         17      ptr = list->n[ptr].next;
                         18      list->n[ptr].next = list->crnt = GetIndex(list);
                         19      SetNode(&list->n[list->n[ptr].next], x, Null);
                         20    }
                         21  }
                         22
                         23  /*--- 머리 노드를 삭제 ---*/
                         24  void RemoveFront (List *list)
                         25  {
                         26    if(list->head != Null) {
                         27      Index ptr = list->n[list->head].next;
                         28      DeleteIndex(list, list->head);
                         29      list->head = list->crnt = ptr;





                                                                                         09•리스트  369
   364   365   366   367   368   369   370   371   372   373   374