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 알고리즘