重建二叉树
发布时间:2023-08-27 18:13:34 295
相关标签:
二叉树的存储结构:
主要采用链式存储结构,顺序存储结构仅适用于完全二叉树(满二叉树)。
将完全二叉树的结点按次序进行编号,实际上是对完全二叉树的一次层次遍历。
完全二叉树能够采用顺序存储结构存储,依靠数组元素的相邻位置反映完全二叉树的逻辑结构。所以,完全二叉树能够采用顺序储存结构存储,依靠元素的相邻位置反映完全二叉树的逻辑结构。
由于顺序存储结构没有特别的存储元素间的关系,不存在一棵二叉树与一种线性序列是一对一的映射,所以,非完全二叉树不能采用顺序存储结构存储。
二叉树的链式存储结构主要有二叉链表和三叉链表。(区别是:三叉链表增加了一个地址域parent指向其父母结点。)
构造一棵二叉树必须明确以下两种关系:
1.结点与其父母结点及孩子结点之间的层次关系;
2.兄弟结点之间左或右的次序关系。
三种能够唯一确定一棵二叉树的表示法:
由于先根次序或后根次序反映父母与孩子结点的层次关系,中根次序反映兄弟结点间的左右次序。
1.已知先根和中根两种遍历序列;
2.已知中根和后根两种遍历序列;
3.标明空子树的先根序列表示。
问题分析
已知先序遍历序列和中序遍历序列,根据两个遍历序列重建二叉树。
结题思路:
一、先遍历先序序列,第一个值即为树的根结点;遍历中序序列(假设没有重复的元素)与先序序列中的第一个值相同的值即为根结点,剩下的元素即为左子树和右子树的元素;
(第一步找到了根结点与左右子树。)
二、遍历先序序列中除了根结点(紧跟根结点)的元素,第一个元素即为左子树的根结点,元素数量与之前遍历中序序列的找出的左子树数量一样。。。。
三、这是个递归过程。详细内容还得慢慢领悟》看代码。
文章来源: https://blog.51cto.com/u_13618048/5891453
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报