正在加载图片...
else printf("‰c结点是树的根结点,不存在双亲结点n"); else printf("元素% printf("\n") intf("下面重新读入x并删除以x为根的子树n") rinf("输入x,元素值前加一个空格:");/此处在%c前加一个空格,因在主函数第一个输入语句执行时用 户最后会输入一个回车,此处不加空格则x变为回车,不会再等待输入若结点元素为整型则无此问题 scanf("%c",&x)://此处在%c前加一个空格,因在主函数第一个输入语句执行时用户最后会输入一个回车 此处不加空格则x变为回车,不会再等待输入.若结点元素为整型则无此问题 if( DeleteChild (BiT,x)= FERROR) printf(x不存在1n") printf("删除BiT中以x为根的子树后BiT的先序输出序列为:") eOrderTraverse(BiT, PrintTElem) intf("删除BiT中以x为根的子树后Bi的中序输出序列为:") InOrderTraverse(BiT, PrintTElem): rinf("Ⅶn"); printf("删除BiT中以x为根的子树后BiT的后序输出序列为:") PostOrderTraverse(BiT. PrintTElem) Tree T printf("以下根据二叉树BiT构造相应的孩子兄弟法存储的树或森林T.Ⅶn"); rinf("源二叉树凹式输出为:n") intBiTree (BiT, 1) BiTreetoTreeorForest(Bit, T) printf("由源二叉树转换得到的树或森林为:1n") entRee(T, 1) printf("构造好的树的后跟输出序列或森林的中序输出序列为:") PostRoot Traverse(T, PrintTEl printf("构造好的树的深度为:%d\nn", Treeor Forest Depth(T) BiTree X printf(以下先复制BiT得到X,后将树x的各结点的左右孩子互换:\n") CopyBiTree(Bit, X) ExchangeBiTree (X) printf("互换完毕,以下进行结果测试:1n") rinf("X先序输出为:") reOrderTraverse(X, PrintTElem) printf( \n") printf("X中序输出为:") InOrder Traverse(X, PrintTElem) printf(\") printf("X后序输出为:") PostOrderTraverse(X, PrintTElem) rinf(\n") printf("x树深:%d\n", TreeDepth(X) printf("X结点总数:%dn”, Node Count(X) printf("递归求得X叶子结点数为:%d\n", LeafCount(x)) printf("非递归第一种方法中序遍历树BiT得:") InOrderTraverse NonRecur 1(BiT, PrintElem) printf( \n") printf("非递归第二种方法中序遍历树BiT得:") InOrder Traverse NonRecur 2(BiT. PrintElem) printf("\n\n") DestroyBiTree (BiT) rinf("销毁后的树先序输出为:n") PreOrderTraverse(BiT, PrintTElem rinf("销毁后树深%d\n", TreeDepth(BiT)); printf("递归求结点总数:%d\n", Node Count(BiT))else printf("%c结点是树的根结点,不存在双亲结点\n"); } else {printf("元素%c不在BiT中\n",x);} printf("\n"); printf("下面重新读入x并删除以x为根的子树\n"); printf("输入x,元素值前加一个空格:");//此处在%c前加一个空格,因在主函数第一个输入语句执行时用 户最后会输入一个回车,此处不加空格则x变为回车,不会再等待输入.若结点元素为整型则无此问题 scanf(" %c",&x);//此处在%c前加一个空格,因在主函数第一个输入语句执行时用户最后会输入一个回车, 此处不加空格则x变为回车,不会再等待输入.若结点元素为整型则无此问题 if(DeleteChild(BiT,x)==ERROR)printf("x不存在\n"); printf("删除BiT中以x为根的子树后BiT的先序输出序列为:"); PreOrderTraverse(BiT,PrintTElem); printf("\n"); printf("删除BiT中以x为根的子树后BiT的中序输出序列为:"); InOrderTraverse(BiT,PrintTElem); printf("\n"); printf("删除BiT中以x为根的子树后BiT的后序输出序列为:"); PostOrderTraverse(BiT,PrintTElem); printf("\n\n"); CSTree T; printf("以下根据二叉树BiT构造相应的孩子兄弟法存储的树或森林T.\n"); printf("源二叉树凹式输出为:\n"); PrintBiTree(BiT,1); BiTreetoTreeorForest(BiT,T); printf("由源二叉树转换得到的树或森林为:\n"); PrintTree(T,1); printf("构造好的树的后跟输出序列或森林的中序输出序列为:"); PostRootTraverse(T,PrintTElem); printf("\n"); printf("构造好的树的深度为:%d\n\n",TreeorForestDepth(T)); BiTree X; printf("以下先复制BiT得到X,后将树X的各结点的左右孩子互换:\n"); CopyBiTree(BiT,X); ExchangeBiTree(X); printf("互换完毕,以下进行结果测试:\n"); printf("X先序输出为:"); PreOrderTraverse(X,PrintTElem); printf("\n"); printf("X中序输出为:"); InOrderTraverse(X,PrintTElem); printf("\n"); printf("X后序输出为:"); PostOrderTraverse(X,PrintTElem); printf("\n"); printf("X树深:%d\n",TreeDepth(X)); printf("X结点总数:%d\n",NodeCount(X)); printf("递归求得X叶子结点数为:%d\n",LeafCount(X)); printf("非递归第一种方法中序遍历树BiT得:"); InOrderTraverse_NonRecur_1(BiT,PrintElem); printf("\n"); printf("非递归第二种方法中序遍历树BiT得:"); InOrderTraverse_NonRecur_2(BiT,PrintElem); printf("\n\n"); DestroyBiTree(BiT); printf("销毁后的树先序输出为:\n"); PreOrderTraverse(BiT,PrintTElem); printf("销毁后树深%d\n",TreeDepth(BiT)); printf("递归求结点总数:%d\n",NodeCount(BiT));
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有