1 / 44
文档名称:

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

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

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

分享

预览

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

上传人:yunde112 2015/1/30 文件大小:0 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的右孩子);
输出1235964
运行结果:

算法代码:
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::Non_Recursive_PreOrder(bool enter)//非递归先序遍历
{
Non_Recursive_PreOrder(Root);
if(enter)cout<<endl;
return OK;
}//Non_r

最近更新

2025区块链金融合规审查会动态时间轴商务蓝主.. 25页

2025年家庭文化共建方案:亲子教育场景化实践.. 24页

2025年智能科技行业转正述职PPT动态图表整合指.. 22页

2025年生物制药领域基因治疗市场趋势分析PPT设.. 25页

2025年蓝色全息投影技术融合的产品展示模板 26页

工程施工合同范本模板 8页

2025新学期黑板卡通风学科竞 25页

2018年评职称学术年度总结范文与2018年诊所年.. 8页

2025校园食品安全教育周主题班会活动策划课件.. 22页

2018年采购部工作年度个人总结与2018年采购部.. 6页

2018年银行安全保卫工作总结范文与2018年银行.. 6页

2018年销售人员销售工作计划范文与2018年销售.. 5页

2018年食品药品安全管理工作计划与2018年食品.. 5页

2025现代禅意花道基础操作手册PPT课件 27页

2018幼儿园园务个人工作计划 9页

2018总裁助理个人年终总结与2018总裁助理年度.. 5页

2018版幼儿园中班保育员四级职业水平考试试题.. 11页

体彩店创业计划书 7页

康复医学科康复诊疗规范 8页

工厂急救箱方案 3页

水泥土换填施工方案 12页

年产10万吨环保新材料项目环评报告书 542页

低温液体泵工艺及安全操作规程 3页

黄志光-有机废气深冷处理技术 12页

关于进一步做好回迁安置和不动产权证办理工作.. 5页

环氧化丁腈橡胶的制备及其共混改性研究 67页

DIN3123-德国套筒接杆标准 4页