node *get_node_any(const char *message_id, unsigned int group_id) { return get_node_1(message_id, group_id, 0); }
void main() { BiTree T; //定义一个指向BiTNode结点的指针 int choice; do{ printf("\n"); printf("请选择操作:\n"); printf("1.按照先序的次序生成一颗二叉树\n"); printf("2.递归算法实现二叉树的先序遍历,输出各结点值\n"); printf("3.用非递归算法实现二叉树的遍历,输出各结点值\n"); printf("4.求度分别为0、1、2的结点的数目(递归算法实现)\n"); printf("5.求度分别为0、1、2的结点的数目(非递归算法实现)\n"); printf("6.按层次遍历二叉树\n"); printf("7.求二叉树的高度(深度)\n"); printf("8.判断是否为完全二叉树,输出\"Yes!\"或\"No!\"\n"); printf("9.交换每个结点的左右子树,并用先序遍历的方式输出\n"); printf("10.对交换左右子树后的二叉树作中序遍历\n"); printf("11.保存到文件\n"); printf("12.从文件中读取并输出\n"); printf("13.退出\n"); scanf("%d",&choice); switch(choice){ case 1: CreateBiTree(&T); //创建二叉树 break; case 2: PreOrderTraverse(T); //利用递归算法的先序遍历,输出结点值 break; case 3: PreOrderTraverse2(T);//利用非递归算法的先序遍历,输出结点值 break; case 4: get_node(T); //利用递归算法得到的各个结点的个数 break; case 5: get_node_1(T); //利用非递归算法得到的各个结点的个数 break; case 6: LevelOrder(T); break; case 7: printf("二叉树的高度为%d\n",height(T)); break; case 8: if(judge(T)==0) printf("No!\n"); else printf("Yes!\n"); break; case 9: exchange(T); PreOrderTraverse(T); break; case 10: InorderTraverse(T); break; case 11: copy_TERM("d:\\aaa.dat",T); break; case 12: type("d:\\aaa.dat",T); break; } }while(choice!=13); }