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

Q1  모든 노드의 데이터를 내림차순으로 출력하는 함수를 작성하세요.
                    연습
                    문제
                             void PrintTreeReverse(const BinNode *p);   /* 모든 노드를 키 값의 내림차순으로 출력 */



                             Q2  FreeTree 함수를 아래와 같이 변경하면 어떻게 실행되는지 생각해 보세요.


                              void FreeTree(BinNode *p) {
                               if(p != NULL) {
                                 FreeTree(p->left);
                                 free(p);
                                 FreeTree(p->right);
                               }
                             }




                             Q3  가장 작은 키 값을 갖는 노드의 포인터를 반환하는 함수와 가장 큰 키 값을 갖는 노드의 포
                            인터를 반환하는 함수를 작성하세요. 트리가 비어 있는 경우에는 널을 반환합니다.


                             BinNode *GetMinNode(const BinNode *p);    /* 가장 작은 키 값을 갖는 노드의 포인터 반환 */
                             BinNode *GetMaxNode(const BinNode *p);    /* 가장 큰 키 값을 갖는 노드의 포인터 반환 */




                     실습 10-3                                              •완성 파일 chap10/BinTreeTest.c

                     01  /* 이진검색트리를 사용하는 프로그램 */
                     02  #include <stdio.h>
                     03  #include "Member.h"  실습 11-1에서 작성
                     04  #include "BinTree.h"
                     05
                     06  /*--- 메뉴 ---*/
                     07  typedef enum {
                     08    TERMINATE, ADD, REMOVE, SEARCH, PRINT
                     09  } Menu;
                     10
                     11  /*--- 메뉴 선택 ---*/
                     12  Menu SelectMenu(void)
                     13  {
                     14    int ch;
                     15    do {
                     16      printf("(1)  삽입 (2) 삭제 (3) 검색 (4) 출력 (0) 종료 : ");




                   424   C 알고리즘
   419   420   421   422   423   424   425   426   427   428   429