- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构二叉树(c)
数据结构——二叉树(c++)
【摘要】现实社会中的树——书籍的目录、任务大纲、家族族谱之类等等。人们要研究就必须能过将树正确的储存,如何存储又关系到实际的操作。树是否为空,在本学期学习的数据结构的教材中允许树为空【1】。因为树表现形式的是一种现实的结构,而0不是自然数。从直观上看树是分支关系定义的层次结构,其中树和二叉树是最常见的【1】。
【关键词】 数据结构;树;二叉树;遍历;探讨空间;
1、二叉树
1.1 二叉树T是有限的结点的集合(允许为空),或者由一个根结点u以及分别称为左子树和右子树的两棵互不相交的二叉树u(1)和u(2)组成。若用n,n1和n2分别表示T,u(1)和u(2)的结点数,则有n=1+n1+n2 。u(1)和u(2)有时分别称为T的第一和第二子树。
在二叉树中,每个结点至多有两个孩子,并且有左、右之分。因此任一结点的孩子不外4种情况:没有孩子;只有一个左孩子;只有一个右孩子;有一个左孩子并且有一个右孩子。(如图1.1)
图1.1 五种基本形态 (其中 □ 表示空)
1.2 二叉树与度数不超过2的树不同,与度数不超过2的有序树也不同。在有序树中,虽然一个结点的孩子之间是有左右次序的,但若该结点只有一个孩子时,就无须区分其左右次序。而在二叉树中,即使是一个孩子也有左右之分。
图1.2a (不同的两颗二叉树) 图1.2b(普通的一棵树)
由图可见:(a)和(b)是两棵不同的二叉树。虽然它们与普通的一棵树(作为无序树或有序树)很相似,但它们却不能等同于这棵普通的树。若将这3棵树均看作是有序树,则它们就是相同的了。所以二叉树和树尽管有很多相似 ,但是二叉树不是树的特殊情形。
所以,二叉树是一种人们假设的一种现象,所以允许为空是无争议的。二叉树是一种有序的树,左边是孩子、右边是兄弟。其实可以看作不同的两棵树。做这个规定,正式因为人们要赋予给孩子兄弟不同的意义。通过这学期的学习发现了一个现象,就是树并没有插入删除操作。对于非线性的树结构,插入删除操作不在一定的法则规定下,是毫无意义的。因此,只有在具体的应用中,才会有插入删除操作。
2、特殊形态的二叉树
2.1满二叉树【1】:一棵高度为h≥0且有2h+1-1个结点的二叉树称为满二叉树。 (如图3.1)
图3.1 (满二叉树)
2.2完全二叉树【1】:若一棵二叉树至多只有最下面的两层结点的度数小于2,并且最下面一层结点都集中在该层的最左边,则称这种二叉树为完全二叉树。 (如图3.2)
图3.2 (完全二叉树)
3、二叉树的遍历以及实现(c++)
3.1二叉树基本上有先序遍历、中序遍历、后序遍历,最开始并不明白为什么有这么多,到了后面才明白,这是不同的应用需要的。例如,删除二叉树,必须先删除左右子树,然后才能删除根节点,这时就要用后序遍历,而判断两个二叉树是否相等,只要子树根节点不同,那么就不等,显然这时要用先序遍历;
3.1.1前序遍历
public:
void PreOrder(void (*visit)(T data) = print) { PreOrder(root, visit); }
private:
void PreOrder(BTNode* p, void (*visit)(T data))
{
if (p){ visit(p-data);
PreOrder(p-left, visit);
PreOrder(p-right, visit); }
}
3.1.2中序遍历
public:
void InOrder(void (*visit)(T data) = print) { InOrder(root, visit); }
private:
void InOrder(BTNode* p, void (*visit)(T data))
{
if (p){ InOrder(p-left, visit);
visit(p-data);
InOrder(p-right, visit); }
}
3.1.3后序遍历
public:
void PostOrder(void (*visit)(T data) = print) { PostOrder(root, visit); }
private:
void PostOrder(BTNode* p, void (*visit)
您可能关注的文档
- 数字舵机原理.doc
- 数字系统课程设计辩论赛计时器.doc
- 数字逻辑电路和PLD设计.doc
- 数字逻辑设计实验报告实验06.doc
- 数学2013年考研大纲.doc
- 数学1必修第一章(下)函数的基本性质提高训练C组及答案.doc
- 数学2必修第三章直线与方程综合训练B组及答案.doc
- 数学4必修第一章三角函数(下)综合训练B组及答案.doc
- 数学4必修第二章平面向量提高训练C组及答案.doc
- 数学5必修第一章解三角形综合训练B组及答案.doc
- 2025年_重庆市渝北区教育事业单位公费师范生招聘考试笔试试卷[附答案].docx
- 2025年_重庆事业单位高校毕业生招聘考试笔试试卷[附答案].docx
- 七年级数学上册 全册应用题分类训练2(原卷版).docx
- 2025年_重庆潼南区事业单位应届公费师范生招聘考试笔试试卷[附答案].docx
- 2025年_重庆万州区“三支一扶”选岗招聘考试笔试试卷[附答案].docx
- 七年级数学上册 整式的加减解答题按梯度分类训练(解析版).docx
- 七年级数学上册 整式的加减解答题按梯度分类训练(原卷版).docx
- 2025年_驻马店职业技术学院招聘考试笔试试卷[附答案].docx
- 2025年_驻马店市辅警考试练习题库[附答案].docx
- 配电网设备运维员岗位责任制.doc
最近下载
- 清水混凝土模板施工工艺.pdf VIP
- 清水混凝土施工工艺质量控制与防治演示文稿.ppt VIP
- GB50164-2021混凝土质量控制标准.docx VIP
- 文旅项目景区景点城市农文旅融合项目稻田主题策划规划方案【旅游】【文旅】【农旅】【文旅规划】.pptx VIP
- 混凝土结构工程施工质量验收规范(英文版).pptx
- 心血管科中医护理课件.pptx VIP
- 混凝土结构工程施工质量验收规范培训课件.pptx VIP
- 《混凝土结构工程施工质量验收规范》局部修订的条文及.docx VIP
- 2012混凝土结构工程施工质量验收规局部修订.doc VIP
- 《混凝土质量控制标准》XX50164-2011正文精华版.doc VIP
文档评论(0)