- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
求实验目的及要
求
实验目的及
要
针对问题的实际要求,正确应用树形结构组织和存储数据;
掌握二叉树的存储方法。
掌握二叉树的各种遍历方法。
计算机科学与工程学院
《数据结构》实验报告
专业班级学生学号学生姓名
实验地点指导教师实验时间
实验项目实验类别
操作性()验证性(
数的应用
)设计性()综合性(Y)其它()
成绩评定表
成绩评定表
类
别
评分标准
分值
得分
合 计
积极出勤、遵守纪律
上机表现
30分
认真完成实验任务
报告质量
程序代码规范、功能正确
70分
**
**
填写内容完整、体现收获
填写内容完整、体现收获
说明:
评阅教师:
日期:
年
月
日
实验内容:
二叉树后序遍历的非递归算法。
实验说明 :
二叉树后序遍历的非递归算法:结点要入两次栈,出两次栈;为了区别同一个结点的两次出栈,设置标志flag,当结点进、出栈时,其标志flag也同时进、出栈。
flag=
第一次出栈,只遍历完左子树,该结点不能访问
第二次出栈,遍历完右子树,该结点可以访问
设根指针为root,则可能有以下两种情况:
⑵ 若root!=NULL,则root及标志flag(置为1)入栈,遍历其左子树;
⑵若root=NULL,此时若栈空,则整个遍历结束;若栈不空,则表明栈顶结点的左子树或右子树已遍历完毕。若栈顶结点的标志flag=1,则表明栈顶结点的左子树已遍历完毕,将flag修改为2,并遍历栈顶结点的右子树;若栈顶结点的标志flag=2,则表明栈顶结点的右子树也遍历
完毕,输出栈顶结点。
实验分析:
二叉树后序遍历的非递归算法伪代码如下:
栈s初始化;
循环直到root为空且栈s为空
当root非空时循环
将root连同标志flag=1入栈;
继续遍历root的左子树;
当栈s非空且栈顶元素的标志为2时,出栈并输出栈顶结点;
若栈非空,将栈顶元素的标志改为2,准备遍历栈顶结点的右子树;
在这次试验当中有两个比较重要的地方一个是怎样讲一个二叉树输入到计算机中,另外,怎样用非递归的方法将这个二叉树遍历,所以经过思考后发小了解决的一些方法,像输入二叉树的
时候就要应用到递归思想而二叉树的遍历的时候就要用到栈的应用
源程序代码:
#includeiostreamusingnamespacestd;#defineMAX100
#defineMaxNode100typedefchardatatype;typedefstructnode
{
datatypedata;
structnode*lchild,*rchild;
}bitree;bitree*root;intn;
charc;
bitree*creattree()
{
bitree*t;datatypex;
cout\n请按照二叉树的规律依次输入各结点,以0作为每个节点的结束标志:;cinx;
while((c=getchar())!=\nc!=EOF); //清除缓冲区的方法
if(x==0)t=NULL;
else
{
t=(structnode*)malloc(sizeof(bitree));t-data=x;
t-lchild=creattree();t-rchild=creattree();
}
return(t);
}
voidpostorder(bitree*t)//后序遍历的非递归算法
{
bitree*p=t,
*stack[MaxNode];//p表示当前结点,栈stack[]用来存储结点inttag[MAX];
inttop=-1;do
{
while(p!=NULL)//先处理结点的左孩子结点,把所有左孩子依次入栈
{
stack[++top]=p;
tag[top]=0;p=p-lchild;
}
if(top=0)//所有左孩子处理完毕后
{
if(!tag[top])//如果当前结点的右孩子还没被访问
{
p=stack[top];//输出栈顶结点,但不退栈,因为要先输出其孩子结点p=p-rchild;//处理其右孩子结点
tag[top]=1;//表示栈中top位置存储的结点的右孩子被访问过了,下次轮到它退栈时可直接输出
}
else//如果该结点的左右孩子都被访问过了
{
coutstack[top--]-data;
}
}
}while((p!=NULL)||(top=0));
}
voidmain()
{
bitree*bintree=creattree();
**
cout\n
您可能关注的文档
- 高三化学一轮复习教学反思.docx
- 高三化学知识点之氮及其化合物.docx
- 高三考前百日宣誓誓词.docx
- 多技能岗位矩阵图.docx
- 多联机空调施工组织设计方案资料.docx
- 多媒体设备使用培训心得体会.docx
- 多媒体数据压缩实验报告.docx
- 多媒体素材的收集及处理.docx
- 多媒体通信技术知识点.docx
- 多媒体无线互动智慧教学解决技术方案.docx
- 《2025年养老社区适老化无障碍设施建设人才培养策略》.docx
- 《2025年新能源车环保内饰材料抗过敏与健康安全标准》.docx
- 《2025年充电桩网络发展:城际快充站运营成本控制与收益模式》.docx
- 2026国家管网集团高校毕业生招聘笔试模拟试题(浓缩500题)附参考答案详解(轻巧夺冠).docx
- 《2025年老年护理培训与护工收入水平提升研究》.docx
- 2025年检测机器人行业创新技术及市场应用报告.docx
- 2025年柬埔寨语培训机构教学品牌创新塑造报告.docx
- 2026国家管网集团高校毕业生招聘笔试模拟试题(浓缩500题)附参考答案详解(轻巧夺冠).docx
- 《2025年家用血氧仪产品差异化与健康管理设备行业趋势》.docx
- 2025年婚庆服务行业高端市场拓展策略研究报告.docx
最近下载
- 2025年《中国近代史纲要》终极复习资料(精心修改版) .pdf VIP
- 双相情感障碍防治指南课件.pptx VIP
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范.pdf VIP
- 高中数学二级结论大全.pdf
- 中医培训课件:《小儿推拿》.pptx
- 第9课 创新增才干-【中职专用】2024年中职思想政治《哲学与人生》金牌课件(高教版2023·基础模块).pptx VIP
- 急性呼吸窘迫综合征精准分型诊治专家(2025)共识学习与解读ppt课件.pptx VIP
- 8 汽车竣工出厂合格证管理制度.doc VIP
- SH_T 3507-2024《石油化工钢结构工程施工及验收规范》.pdf VIP
- 2021年12月四级考试预测押题卷(五)(附答案解析).docx VIP
原创力文档


文档评论(0)