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);
}
Exemple #2
0
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;
		}
	}
}