教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

二叉树的基本操作完整版,包含二叉树的所有操作,凡是你想要的都在(4)

来源:网络收集 时间:2026-08-01
导读: return choose; }//Menu2() void main(){ system(color e0); BiTree T=NULL; int num,l,h,choose,flag=0,i=0,j=0,n; TElemType ch; while((choose=MainMenu())!=0){ switch(choose){ case 1:if(flag==2){ printf(您

return choose;

}//Menu2()

void main(){

system("color e0");

BiTree T=NULL;

int num,l,h,choose,flag=0,i=0,j=0,n;

TElemType ch;

while((choose=MainMenu())!=0){

switch(choose){ case 1:if(flag==2){ printf("您已清空了之前的二叉树,目前为空树,无须再建立空树!\n\n");} else{ if(flag==0){InitBiTree(T);flag=1;} else{ printf("您之前已经建过空树,若想重建,请先销毁当前的树!\n\n");}} system("pause");break; case 2:if(!T)printf("您还没有建树,请先建树!\n\n"); else{if(T->next) printf("二叉树已存在,若想重建,请先清空当前的二叉树!\n\n"); else{ system("cls");CreateBiTree(T->next,i,j,ch); printf("\n\n二叉树创建完成!\n\n");} } system("pause");break; case 3:if(!T)printf("您还没有建树,请先建树!\n\n"); else{l=0;h=0; if(T->next){printf("\n 当前二叉树的树状图如下:\n\n");}

system("pause");break; case 4:if(!T){printf("您还没有建树,请先建树!\n\n");system("pause");} else{ if(!T->next){printf("二叉树目前为空树,请创建非空树后再遍 else{ while((choose=Menu())!=0){ l=0;h=0; printf("\n 当前二叉树的树状图如下:\n\n"); Lev_Traverse(T->next,TreeDepth(T->next,l,h)); switch(choose){ case 1:FirstPrint(T->next,i);printf("\n\n"); system("pause");break; case 2:MiddlePrint(T->next,i);printf("\n\n"); system("pause");break; case 3:LastPrint(T->next,i);printf("\n\n"); system("pause");break; case 4:PreOrderTraverse(T->next); system("pause");break; case 5:InOrderTraverse(T->next); system("pause");break; case 6:PostOrderTraverse(T->next); system("pause");break; case 7:LevelOrderPrint(T->next);printf("\n\n"); system("pause");break; default:exit(ERROR); 历!\n\n");system("pause");}

}}}}break; case 5:if(!T){printf("您还没有建树,请先建树!\n\n");system("pause");}

else{

if(!T->next){printf("二叉树目前为空树,请创建非空树后再查看信息!\n\n");system("pause");}

else{ while((choose=Menu1())!=0){ l=0;h=0; printf("\n 当前二叉树的树状图如下:\n\n"); Lev_Traverse(T->next,TreeDepth(T->next,l,h)); switch(choose){ case 1:GetRootElem(T->next); system("pause");break; case 2:printf("当前二叉树的深度为: %d\n\n",TreeDepth(T->next,l,h));

中有效结点的个数 system("pause");break; case 3:printf("\n二叉树

为: %d\n\n",GetElemSum(T->next));

system("pause");break;

case 4:printf("\n二叉树中度为

为: %d\n\n",GetLeafNum(T->next)-1);

2的结点个数 system("pause");break; case 5:printf("\n二叉树中度为1的结点个数为: %d\n\n", GetElemSum(T->next)-2*GetLeafNum(T->next)+1);

中叶子结点个数 system("pause");break; case 6:printf("\n二叉树

为: %d\n\n",GetLeafNum(T->next));

system("pause");break; case 7:printf("请输入要统计的元素: "); fflush(stdin);scanf("%c",&ch);

GetElemNum(T->next,ch);

system("pause");break;

case 8:Lchild(T->next,GetElemSum(T->next)); system("pause");break; case 9:Rchild(T->next,GetElemSum(T->next)); system("pause");break; case 10:LBrother(T->next,GetElemSum(T->next)); system("pause");break; case 11:RBrother(T->next,GetElemSum(T->next)); system("pause");break; case 12:Partents(T->next,GetElemSum(T->next)); system("pause");break; default:exit(ERROR); }}}}break; case 6:if(!T){printf("您还没有建树,请先建树!\n\n");system("pause");}

else{

if(!T->next){printf("二叉树目前为空树,请创建非空树后再对树进行操作!\n\n");system("pause");}

else{ while((choose=Menu2())!=0){ if(choose!=4&&choose!=5){ system("cls");l=0;h=0; printf("\n 当前二叉树的树状图如下:\n\n"); Lev_Traverse(T->next,TreeDepth(T->next,l,h)); printf("\n二叉树中有效结点的个数为: %d\n\n",GetElemSum(T->next)); printf("当前二叉树的深度为: %d\n\n",h);} switch(choose){ case 1:num=GetElemSum(T->next); TreeDelete(T->next,GetElemSum(T->next)); if(num!=GetElemSum(T->next)){ l=0;h=0; printf("\n 删除后二叉树的树状图如下:\n\n");

…… 此处隐藏:1146字,全部文档内容请下载后查看。喜欢就下载吧 ……
二叉树的基本操作完整版,包含二叉树的所有操作,凡是你想要的都在(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/115621.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)