/*
* binaryTree
* by niy@cc.utsunomiya-u.ac.jp on July 16, 1996
*/
#include <stdio.h>
#include <stdlib.h>
#include "binaryTree.c"
int main(void) {
char buf[100];
int i;
int done = 0;
printf("--- 2ºÐ Ž»ö³ª¹«¿¡ ÀÖ¾î¼ÀÇ »ðÀÔ, °Ë»ö, »èÁ¦ ---\n");
printf("ÀÌÇÏÀÇ Ä¿¸àµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â \n");
printf(" Ix: xÀÇ °ªÀ» »ðÀÔ \n");
printf(" Fx: xÀÇ °ªÀ» °Ë»ö \n");
printf(" Dx: xÀÇ °ªÀ» »èÁ¦ \n");
printf(" W: 2ºÐ Ž»ö³ª¹«¸¦ º¸´Â \n");
printf(" Q: Á¾·á \n");
while (! done) {
printf("Ä¿¸àµå? ");
gets(buf);
i = 0;
while (buf[i] == ' ' || buf[i] == '\t' || buf[i] == '\n') i++;
switch (buf[i]) {
case 'i':
case 'I':
if (insert(buf[i+1]) == NULL)
printf("%c ´Â µî·ÏÁ¦ÀÔ´Ï´Ù \n", buf[i+1]);
break;
case 'f':
case 'F':
if (search(buf[i+1]) == NULL)
printf("%c ´Â ¹Ìµî·ÏÀÔ´Ï´Ù \n", buf[i+1]);
break;
case 'd':
case 'D':
if (delete(buf[i+1]) ! = 0)
printf("%c ´Â ¹Ìµî·ÏÀÔ´Ï´Ù \n", buf[i+1]);
break;
case 'w':
case 'W':
dump(root);
break;
case 'q':
case 'Q':
done = 1;
break;
default:
printf("»ç¿ëÇÒ ¼ö ÀÖ´Â Ä¿¸àµå´Â I, F, D, W ÀÔ´Ï´Ù \n");
break;
}
}
return 0;
}
int dump(NODE *node){
static int depth = 0;
if (node == NULL)
return;
if (node->left ! = NULL) {
depth++;
dump(node->left);
depth--;
}
printf("%c (%d) \n", node->key, depth);
if (node->right ! = NULL) {
depth++;
dump(node->right);
depth--;
}
}