版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验四 二叉树的建立与遍历【实验目的】l 掌握二叉树的定义、性质及存储方式,各种遍历算法。【实验内容】采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序遍历的递归操作。分别求所有叶子结点及结点总数的操作。 提示:设计一颗二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针),如ABD#CE#F#,建立二叉树,求出先序、中序和后序遍历序列,求所有叶子及结点总数。【程序源代码】#include<stdio.h>#include<stdlib.h>typedef char TElemType;typedef int Status;#define OK 1#de
2、fine ERROR 0#define OVERFLOW 0typedef struct BiTNode TElemType data;struct BiTNode *lchild, *rchild;BiTNode , *BiTree;Status CreateBiTree(BiTree &BT);void CountLeaves(BiTree BT, int &count);int NodeCount(BiTree BT);void PreOrder(BiTree BT);void InOrder(BiTree BT);void PostOrder(BiTree BT);in
3、t main()BiTree BT;int choice,cho;int logo = 1;printf("输入二叉树结点,以'#'为空指针n");CreateBiTree(BT);do printf("t 1:遍历二叉树n"); printf("t 2:二叉树总结点数及叶子节点数n"); printf("t 3:退出程序n "); printf("t 输入选项: "); scanf("%2d",&choice); switch(choice) cas
4、e 1: printf("1:先序遍历n"); printf("2:中序遍历n"); printf("3:后序遍历n"); scanf("%2d",&cho); switch(cho) case 1: PreOrder(BT); printf("n"); break;case 2: InOrder(BT); printf("n"); break; case 3: PostOrder( BT); printf("n"); break; default
5、: printf("输入错误!n"); break;case 2: int count; printf("总结点数为:%2dn", NodeCount(BT); CountLeaves(BT, count); printf("叶子结点数为:%2dn", count); break;case 3 :exit(0);break;default:printf("输入错误!n"); while(logo=1);return 0;Status CreateBiTree(BiTree &BT)char ch;scanf
6、("%c", &ch);if (ch = '#') BT = NULL;elseif (!(BT = (BiTree)malloc(sizeof(BiTNode)exit(OVERFLOW);BT->data = ch;CreateBiTree(BT->lchild);CreateBiTree(BT->rchild);return OK;void PreOrder(BiTree BT)if (BT != NULL)printf("%c ", BT->data);PreOrder(BT->lchild)
7、;PreOrder(BT->rchild);void InOrder(BiTree BT)if (BT != NULL)PreOrder(BT->lchild);printf("%c ", BT->data);PreOrder(BT->rchild);void PostOrder(BiTree BT)if (BT != NULL)PreOrder(BT->lchild);PreOrder(BT->rchild);printf("%c ", BT->data);void CountLeaves(BiTree BT,int &count)if (BT)if (!BT->lchild && !BT->rchild)count+;CountLeaves(BT->lchild, count);CountLeaves(BT->rchild, count);int NodeCount(BiTree BT)/统计总结点数 if (BT = NULL)return 0;elsereturn (NodeCount(BT->lchild) + NodeCount(BT->rchild) + 1);【运行结果分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年鲁人新版选修化学下册月考试卷
- 二零二五年度国际物流运输服务合同14篇
- 2025版网络安全风险评估与应急预案合同4篇
- 二零二五年度木工机械操作人员劳务租赁合同4篇
- 2025年外研版选修四历史下册月考试卷
- 2025年湘教版九年级历史下册月考试卷
- 2024年度陕西省公共营养师之四级营养师通关提分题库及完整答案
- 2024年度陕西省公共营养师之四级营养师能力测试试卷A卷附答案
- 车间的现代化转型与创新发展思考
- 2025年苏教版选择性必修3历史下册阶段测试试卷含答案
- 第十七章-阿法芙·I·梅勒斯的转变理论
- 焊接机器人在汽车制造中应用案例分析报告
- 合成生物学在生物技术中的应用
- 中医门诊病历
- 广西华银铝业财务分析报告
- 无违法犯罪记录证明申请表(个人)
- 大学生劳动教育PPT完整全套教学课件
- 继电保护原理应用及配置课件
- 《杀死一只知更鸟》读书分享PPT
- 盖洛普Q12解读和实施完整版
- 2023年Web前端技术试题
评论
0/150
提交评论