1 / 42
文档名称:

二叉树递归非递归遍历.docx

格式:docx   大小:165KB   页数:42
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

二叉树递归非递归遍历.docx

上传人:rsqcpza 2021/3/8 文件大小:165 KB

下载得到文件列表

二叉树递归非递归遍历.docx

文档介绍

文档介绍:《数据结构》——算法设计
学号:
姓名:
专业班级:
成绩:
评语:
设计1:二叉树遍历
设计要求:
根据二叉树遍历思想,分别实现先序遍历、中序遍历、后序遍历、层次遍历的算法
遍历算法可以尝试使用递归或非递归的方法实现。若需要使用堆栈或队列,请直接使用C++自带的stack和queue对象。
设计分析
(说明自己实现了哪几个算法,对每个算法的设计思想做简单扼要的说明)
建立Tree类
类中的元素有
TreeNode *Root;//树的根节点
bool Find;//查找开关
bool Found;//判断是否找到指定编号的树叶
int pos;//结点数量
ElemType *data;//结点值的数组

(只需要写出核心代码和运行结果,对代码和结果做分析说明)
算法代码:
void Tree::PreOrder(TreeNode *t)//protected先序遍历输出树中所有的值
{
if(t)
{
cout<<t->data;
PreOrder(t->LeftChild);
PreOrder(t->RightChild);
}//if
}//PreOrder
void Tree::PreOrder(bool enter)//public先序遍历
{
PreOrder(Root);
if(enter)cout<<endl;
}//PreOrder
调用代码:
#define ElemType int
int main()
{
ElemType data[9]={1,2,NULL,3,NULL,NULL,4,NULL,NULL};
Tree T1;
TreeNode *t;
(t,5,true,NULL);
(data,9); //根据data和数组长度为9建立二叉树
(5,t); //在编号为5的树结点的左孩子插入数字5
(t,6,true,NULL);
(5,t); //在编号为5的树结点的右孩子插入数字6
(t,9,true,NULL);
(10,t); //在编号为10的树结点的左孩子插入数字9
(true);
return 0;
}
代码分析:
代码的访问顺序:
访问1,输出1;
访问2,输出2;
访问NULL(2的左孩子);
访问3,输出3;
访问5,输出5;
访问9,输出9;
访问NULL(9的左孩子);
访问NULL(9的右孩子);
访问NULL(5的右孩子);
访问6,输出6;
访问NULL(6的左孩子),访问NULL(6的右孩子);
访问4,输出4;
访问NULL(4的左孩子),访问NULL(4的右孩子);
输出
运行结果:

算法代码:
void Tree::Non_Recursive_PreOrder(TreeNode*T) //protected非递归先序遍历
{
/*——————————————————————————
首先进行p的输出。存储的内容基本上是右结点。
遍历左边缘不断输出,然后转到右结点入栈,继续
左边缘不断输出。等到再无左边缘的时候逆向输出
所有右孩子。
———————————————————————————*/
stack<TreeNode*> s;
TreeNode *p=T,*q;
(p);//把Root推入栈内
while(!())//如果s不空
{
cout<<p->data;
q=p->RightChild;
if(q)(q); //如果q(p的右孩子)不空则将q推入栈
p=p->LeftChild;
if(!p) //如果p(p的左孩子)为空则回到(p的右孩子)
{
p=();
();
}//if
}//while
}//Non_recursive_PreOrder
Status Tree::

最近更新

高校党委改革建议书 7页

高效行政流程建议书 5页

高效自动排课项目建议书 5页

高效水质自动监测建议书 6页

高县旅游提升建议书 6页

高三女孩学习方法建议书 5页

餐饮菜单创新建议书 6页

食品添加剂项目推进建议书 6页

领导对员工提升建议书 5页

左心衰患者的康复指导与训练 77页

2024年淮北师范大学马克思主义基本原理概论期.. 13页

2024年温宿县幼儿园教师招教考试备考题库附答.. 31页

2024年湖北省纺织职工大学马克思主义基本原理.. 13页

2024年湖南应用技术学院马克思主义基本原理概.. 13页

2024年湛江科技学院马克思主义基本原理概论期.. 12页

2024年甘肃医学院马克思主义基本原理概论期末.. 13页

2024年益阳教育学院马克思主义基本原理概论期.. 12页

2024年福建卫生职业技术学院马克思主义基本原.. 13页

2024年紫阳县招教考试备考题库及答案解析(夺.. 31页

2024年美姑县招教考试备考题库带答案解析(夺.. 31页

2024年苏州农业职业技术学院马克思主义基本原.. 12页

2024年菏泽生物医药职业学院马克思主义基本原.. 12页

2024年衡水职业技术学院马克思主义基本原理概.. 13页

2024年西安工商学院马克思主义基本原理概论期.. 12页

2024年象州县幼儿园教师招教考试备考题库含答.. 31页

2024年贵阳学院马克思主义基本原理概论期末考.. 12页

2024年辽宁商贸职业学院马克思主义基本原理概.. 12页

2024年连江县幼儿园教师招教考试备考题库及答.. 31页

2024年邱县幼儿园教师招教考试备考题库含答案.. 31页

2024年郴州智能科技职业学院马克思主义基本原.. 12页