tNode(BiTNode *T) { if(T == NULL) return 0; return 1+CountNode(T->lchild)+CountNode(T->rchild); } int main(void) { BiTNode *root=NULL; //定义一个根结点 int flag=1,k; printf(" 本程序实现二叉树的基本操作。\n"); printf("可以进行建立二叉树,递归先序、中序、后序遍历,非递归先序、中序遍历及非递归层序遍历等操作。\n"); printf("请建立二叉树并输入二叉树的根节点:"); CreateBiTree(&root); if(root) { printf("递归先序遍历二叉树的结果为:"); PreOrder(root); printf("\n"); printf("递归中序遍历二叉树的结果为:"); InOrder(root); printf("\n"); printf("递归后序遍历二叉树的结果为:"); PostOrder(root); printf("\n"); printf("非递归先序遍历二叉树:"); PreOrder_Nonrecursive(root); printf("\n"); printf("非递归中序遍历二叉树:"); InOrderTraverse(root); printf("\n"); printf("非递归后序遍历二叉树:"); PostOrder_Nonrecursive(root); printf("\n"); printf("非递归层序遍历二叉树:"); //LeverTraverse(root); LevelOrder(root); printf("\n"); printf("这棵二叉树的深度为:%d\n",depth(root)); printf("这棵二叉树的结点个数为:%d\n",CountNode(root)); printf("程序运行结束,按任意键退出!\n"); } system("pause"); return 0; }
|