免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
# include # include # include typedef int Etype;typedef struct BiTNode Etype data; struct BiTNode *lch,*rch; BiTNode,*pointer;BiTNode *creat_bt1();BiTNode *creat_bt2();void inorder(BiTNode *p);void numb(BiTNode *p);BiTNode *t; int n,n0,n1,n2;pointer point=NULL;int searchbst(pointer p,Etype key,pointer parent,pointer &q);int insertbst(pointer &p,Etype key);void deletedata(pointer &p);int deletebst(pointer &p,Etype key);void main() system (color 6e );char ch; int k;int cp,num,sk; do printf(nnn); printf(nn 1. 建立二叉排序树并中序遍历); printf(nn 2. 二叉链表建立二叉树); printf(nn 3. 顺序数组建立二叉树); printf(nn 4. 计算树中结点个数); printf(nn 5. 中序遍历二叉树); printf(nn 6. 二叉排序树查询删除节点); printf(nn 7. 结束程序运行); printf(n=); printf(n 请输入您的选择 (1,2,3,4,5,6,7); scanf(%d,&k); switch(k) case 1:printf(请输入结点的个数:); scanf(%d,&num); for(cp=0;cp=1 & kdata)q=p;return 1;else if(keydata)return searchbst(p-lch,key,p,q);else return searchbst(p-rch,key,p,q);int insertbst(pointer &p,Etype key)pointer q,s;if(!searchbst(p,key,NULL,q) s=(pointer)malloc(sizeof(BiTNode); s-data=key; s-lch=s-rch=NULL; if(!q)p=s; else if(s-datadata)q-lch=s; else q-rch=s; printf(插入成功!n); return 1;else printf(插入失败!n);return 0;int deletebst(pointer &p,Etype key)if(!p)return 0;else if(p-data=key)deletedata(p);return 1;else if(keydata) return deletebst(p-lch,key);else return deletebst(p-rch,key);void deletedata(pointer &p)pointer q,s; if(!p-rch) q=p;p=p-lch;free(q); printf(查找成功,已删除该结点!n); return;else if(!p-lch) q=p;p=p-rch;free(q); printf(查找成功,已删除该结点!n); return;else q=p;s=p-lch; while(s-rch)q=s;s=s-rch; p-data=s-data; if(q!=p)q-rch=s-lch; else q-lch=s-lch; delete s; printf(查找成功,已删除该结点!n); return;printf(无此结点!n);BiTNode *creat_bt1()/利用数组建立 BiTNode *t,*p,*v20; int i,j; Etype e; printf(n 输入结点的序号i,结点的数据?); scanf(%d,%d,&i,&e); while(i!=0 & e!=0) p=(BiTNode *)malloc(sizeof(BiTNode); p-data=e; p-lch=NULL; p-rch=NULL; vi=p; if (i=1) t=p; else j=i/2; if(i%2=0) vj-lch=p; else vj-rch=p ; printf(n i,data=?); scanf(%d,%d,&i,&e); return(t); /模仿线序遍历递归建立二叉树 BiTNode *creat_bt2() BiTNode *t; int e; printf(n data=); scanf(%d,&e); if(e=0) t=NULL; else t=(BiTNode *)malloc(sizeof(BiTNode); t-data=e; printf(输入其左孩子 无左孩子输入0); t-lch=creat_bt2(); printf(输入最下层未知左孩子结点的左孩子 无左孩子弟输入0); t-rch=creat_bt2(); return(t); void inorder(BiTNode *p) if (p) inorder(p-lch); printf( %3d,p-data); inorder(p-rch); /利用中序递归遍历二叉树的方法,计算树中结点个数 void numb(BiTNode *p) if (p) numb(p-lch); printf(%3d,p-data); n+; if(p-lch=NULL &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络教育平台课程开发计划
- 品牌传播活动策划指南
- 通信设备升级项目管理手册与时间表
- 高级体育经纪人职业规划指导
- 专业认证考试备考计划及复习指导
- 某大数据分析项目如用户画像实施效果总结
- 社工面试日间照料中心应急题
- 美容美发师初级技能培训与客户服务计划
- 司法鉴定助理环境面试重点突破
- 碳资产管理师中级相关法律法规
- 现金流量表附表的快速编制方法
- 创伤后的机体反应
- 湖南涉外经济学院毕业生就业推荐表
- 深圳市失业人员停止领取失业保险待遇申请表样表
- 疱疹病毒课件
- 2023年乐东黎族自治县(中小学、幼儿园)教师招聘笔试题库及答案解析
- 市场法在机器设备价值评估中的应用
- 基于核心素养的深度学习( 讲座)课件
- 真空电镀UV底漆的工艺流程
- (完整word版)高考英语作文练习纸(标准答题卡)
- 危险化学品MSDS(聚乙烯)
评论
0/150
提交评论