void free_bt(tree_pointer ptr){ // 트리의 모든 노드를 시스템에 반환(free) if(ptr==NULL) return; free_bt(ptr->left); free_bt(ptr->right); printf("\nfree node with item %d ...\n",ptr->data); free(ptr); }
void exitgame() { int loop; for (loop=0;loop<52;loop++) farfree(data.block[loop]); for (loop=0;loop<3;loop++) farfree(data.coin[loop]); free(hcoin); free_cw(); free_bt(); uninstall_new_key_handler(); RestoreTimer(); set_mode(TEXT_MODE); }
void main () { char c; int n; tree_pointer t; t = build_simple_tree(); printf("************* Command ************\n"); printf("C: Count tree, A: Add tree data \n"); printf("H: Height of tree, S: Show preorder \n"); printf("F: Free tree, Q: Quit \n"); printf("**********************************\n"); while (1) { printf("\nCommand> "); c = _getch(); _putch(c); c = toupper(c); switch (c) { case 'C' : n = bt_count(t); printf ("\n Total number of node = %d \n", n); break; case 'A' : n = bt_add(t); printf ("\n Sum of tree data = %d \n", n); break; case 'H' : n = bt_height(t); printf ("\n Height of tree = %d \n", n); break; case 'S' : printf ("\n"); bt_show_preorder(t); printf ("\n"); break; case 'F' : printf ("\n"); free_bt(t); printf ("\n"); break; case 'Q' : printf("\n"); exit(1); default : break; } } }