文档文库
手机版
投诉建议
热门搜索:
心得体会
演讲稿
思想汇报
首页
心得体会
学习心得体会
培训心得体会
军训心得体会
社会实践
作风建设
工作心得体会
教育心得体会
演讲稿
演讲稿格式
演讲稿范文
竞聘演讲稿
师德演讲稿
三分钟演讲稿
思想汇报
思想汇报范文
转正思想汇报
大学生思想汇报
季度思想汇报
教师思想汇报
工作计划
工作计划格式
工作计划开头
工作计划结尾
总结与计划
工作计划模板
工作总结
年终工作总结
年度工作总结
个人工作总结
实习报告
实习报告范文
实习计划范文
实习鉴定范文
实习报告内容
个人简历
求职简历
简历范文
简历模板
简历表格
简历格式
祝福语
春节
除夕
元宵
端午节
合同范文
合同范本
合同样本
合同范本格式
首页
>
层次遍历树
层次遍历树
发布时间:2023-03-25 10:53:24 来源:
文档文库
小
中
大
字号:
手机查看
一.
实验要求
设一棵二叉树中各结点的值互不相同,其前序序列和中序序列分别存于两个一维数组
pre[1..n]
和
mid[1..n]
中,试编写算法建立该二叉树的二叉链表。
二.
程序设计的基本思想,原理和算法描述
(包括程序的框架结构组织,相关数据结构,输入
/
输出设计,主要算法和函数的设计思路)
思路:
一:利用结构体作为单链表节点,结构体包括奥
(
1
)
数据变量
(
2
)
节点型数据指针的左儿子和右儿子
二:输入输出设计
输入需要输入的节点个数和前序遍历的数组,中序遍历的数组
输出建立好的二叉树的前序,中序,后序和层次遍历的结果
主要运用了递归算法,建立二叉链表
(
1
)利用输入的二叉树的前序遍历数组,知道根节点的数据,然后在中序遍历数组中找到根节
点的位置,在中序数组中将其分为二叉树的左子树和右子树
(
2
)在利用递归函数,重新调用建树的函数,以子树的前序和中序遍历数组找到其子树的根节
点和子树的左子树和右子树
(
3
)遍历二叉树时也主要运用的递归算法,依次访问二叉树的节点
例如
输入:前序数组:
abdcef
中序数组:
dbaecf
由前序数组可知根节点数据为
a
在中序数组中根据根节点的位置,将二叉树的左子树节点与右子树节点分开,得到两个子树
的中序遍历数组
三:
主要算法
左子树的中序遍历结果:
d
b(
左子树有两个节点
左子树的前序遍历结果:
b
d(
根据中序在前序中确定
确定其跟节点为
b
,
将其地址传
回
左子树的中序遍历结果:
d
(
左子树有
1
个节点
左子树的前序遍历结果:
d
(
根据中序在前序中确定
确定其跟节点为
d
,
将其地址传
回
d
根节点为
a
a
b
c
右子树的中序遍历结果:
e
c
f(
右子树有三个节点
右子树的前序遍历结果:
c
e
f(
根据中序在前序中确定
确定其根节点为
c
,将其节点地址
传回
e
f
左子树的中序遍历结果:
f
(
右子树有
1
个节点
左子树的前序遍历结果:
f
(
根据中序在前序中确定
确定其跟节点为
f
,将其地址传
回
左子树的中序遍历结果:
e
(
左子树有
1
个节点
左子树的前序遍历结果:
e
(
根据中序在前序中确定
确定其跟节点为
e
,将其地址传
回
三.
算法的源程序及注释
#include
usingnamespacestd;
constintMAXSIZE=100;
template
structbinode//
树节点数据类型
{
Tdata;
binode
*lchild,*rchild;
};
template
classbitree
{
private:
intnum;//
记录树的节点个数
binode
*root;//
树的根节点
Tpre[MAXSIZE],mid[MAXSIZE];//
数的前序遍历数组与中序遍历数组
public:
bitree({//
构造函数,将根节点置空
root=NULL;
}
binode
*rooted(binode
*r{//
将建立的二叉树的根节点传回函数
root=r;
}
binode
*returned({//
取得二叉树的根节点
returnroot;
}
intnumed({//
取得二叉树的节点个数
returnnum;
}
voidputin(;
binode
*creattree(intl1/*
树前序遍历的第一个节点数据在其数组的位置
*/,inth1/*
树前序遍历的最后一个节点在其数组中的位置
*/,intl2/*
树中序遍历第一个节点在其数组中的
位置
*/,inth2/*
树中序遍历最后一个节点在其数组中的位置
*/;
voidpreorder(binode
*root;//
前序遍历二叉树
voidineorder(binode
*root;//
中序遍历二叉树
voidpostorder(binode
*root;//
后续遍历二叉树
voidbianli(binode
*root;//
层次遍历二叉树
本文来源:
https://www.2haoxitong.net/k/doc/2bc56d0ebe23482fb4da4c77.html
《层次遍历树.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
文档为doc格式
分享到:
相
关
案
例
正在进行安全检测...
2024-04-28
正在进行安全检测...
2024-04-28
安全验证
2024-04-28
正在进行安全检测...
2024-04-28
正在进行安全检测...
2024-04-28
安全验证
2024-04-28
安全验证
2024-04-28
正在进行安全检测...
2024-04-28
安全验证
2024-04-28
正在进行安全检测...
2024-04-28
相关推荐
1
《秋赋》阅读附答案
2
Flash画人物的几个步骤
3
一种治疗感冒的中药组合物、药浴包及其制备方法
4
2021年中考物理复习 电学知识点整理
5
最新《地球上的星星》观后感
6
虚拟现实技术在虚拟旅游中的应用
7
0003基于~核心素养的基地校本课程教学教程实践研究计划申请申报书
8
以人文之精神会见
9
《给教师的建议》读后感10篇
10
秋分祝福语
推荐内容
三爱三节手抄报内容
内蒙古工业大学博士研究生指导教师遴选办法(试行)(精)
车辆警务大数据系统在安防行业中的应用
中小学精选菊花展作文8篇
敬老院活动总结
关于学校的培训工作计划范文5篇
初一作文500字恐怖娃娃
排水工程施工组织设计说明
标准的入党申请_1
胡萝卜搭塔怎么写作文