数计学院数据结构二叉树遍历课程设计(2)
}
⑨二叉树的非递归后序遍历:
void houxu(treenode* b)
{
treenode *stack[MAXSIZE], *p;
int sign, top = -1;
printf("非递归后序遍历:\t");
if (b != NULL)
{
do
{
while (b != NULL)
{
top++;
stack[top] = b;
b = b->left;
}
p = NULL;
sign = 1;
while (top != -1 && sign)
{
b = stack[top];
if (b->right == p)
{
printf("%d\t", b->data);
top--;
p = b;
}
else
{
b = b->right;
sign = 0;
}
}
}
while (top != -1);
printf("\n");
}
}
附:由于程序只是递归遍历与非递归遍历的算法不一样,实现的代码不一样,但是main函数部分绝大部分是一样的,就不一一列举了。
五.测试与结论
图一 创建二叉树,输入数据
图二 输入数据后选择功能
图三 选择1,2,3功能,实现二叉树三种递归遍历, 其间可选择继续或者退出
图四 选择4实现查找节点功能
图五 若输入没有的功能号,程序将报错并可重新输入
图六 非递归的三种遍历,功能与递归的几乎一样
结论:本次的课程设计能成功的实现老师要求程序所具有的功能,并加以改进。因为递归与非递归的程序运行结果一样,所以在此非递归的程序运行图就不一一截取了。
六.课程设计总结
通过这次的实验,明白了用具有递归功能的程序设计语言就能很方便的实现二叉树递归遍历,二叉树的非递归遍历算法是通过建立栈来实现的。我不仅写出了二叉树递归与非递归的三种遍历,而且还加入了查找节点与菜单选择功能,使程序更美观,更人性化。经过此次试验,我发现自己对链式存储与函数的调用这两方面运用的还不是很熟练,同时也明白我还有好东东西没有学习和掌握,以后我会更加的努力的去自我学习,争取能够对一些简单的程序信手拈来。
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




