/* * 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--; } }