树的基础
文章平均质量分 74
Vmorish
这个作者很懒,什么都没留下…
展开
-
根据二叉树的先序和中序遍历求出其后序遍历
Q:已知二叉树的先序和中序遍历,求后序遍历= =分析:先举个栗子,比如我们知道某二叉树的先序遍历和后序遍历分别为 DBACEGF ABCDEFG,辣么如果要求后序遍历的话,应该现在先序遍历中找出二叉树的根节点(也就是先序中的第一个值D),然后在去中序遍历中找到根节点,那么就很明确的知道中序中,根节点的左边为左子树,右边为右子树,然后找出左子树的后序遍历和右子树的后序遍历,最终拼接在一起就OK原创 2017-02-20 10:38:10 · 1016 阅读 · 0 评论 -
求二叉树的深度和宽
Description(1)根据教材中算法6.4所示的算法,按照给出的先序序列建立二叉链表表示的二叉树(结点数不超过26)。(2)计算该二叉树的繁茂程度。一颗二叉树的繁茂程度为二叉树的宽度与高度的乘积,二叉树的宽度为各层节点数的最大值。Input包含多组测试数据。每组测试数据一行,给出二叉树的先序遍历序列(至少1个结点)。Ou原创 2017-02-20 21:03:41 · 638 阅读 · 0 评论 -
求根结点到指定结点的路径
Description二叉树采用二叉链表存储结构进行存储,需要输出从二叉树的树根到指定结点的完整路径。按照给出的先序序列根据教材中算法6.4所示的算法建立二叉链表。二叉树中每个结点的数据都不相同。Input包含多组测试数据。每组测试数据的第一行给出二叉树的先序遍历序列(结点数至少1个,不超过100个),用于建立二叉链表存储的二叉树。第二行一个整数m,原创 2017-02-20 23:14:19 · 9022 阅读 · 0 评论 -
树转换为二叉树
Description输入一颗普通有序树,将它转换为对应的二叉链表存储,然后输出该二叉树的先序和后序遍历序列。Input包含多组测试数据。每组测试数据第1行为树的结点个数n(1≤n≤26)。接下来包含n行,其中第i行(1≤n≤n)的数据依次为结点i的数据值ai(为一个小写字母),后面各元素为结点i的儿子序列,以0结束。若ai后仅含一个0,则表示结点i为叶原创 2017-02-22 16:18:20 · 1044 阅读 · 0 评论 -
wustoj1654医院设置
Description一颗二叉树有n(1≤n≤50)个结点,分别编号为1到n,每个结点代表一个居民点,每个居民点都有一定数量的居民(≤100)。现在需要选择一个居民点建一家医院,使得所有居民走的路程之和最小。同时约定,相邻两节点之间的距离为1。例如对于样例,有5个居民点,每个居民点的居民数量分别为13,4,12,20,40.如果选择居民点1作为医院位置的话,则距离和为4*1+13*0+原创 2017-02-22 21:29:16 · 474 阅读 · 0 评论 -
剑指offer——重建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析:先搞清楚二叉树的四种遍历方式(先序遍历:根左右;中序遍历:左根右;后序遍历:左右根;层析遍历:由根往下一层一层的遍历),然后这个题的题意很明显,就是...原创 2018-02-19 22:16:20 · 207 阅读 · 0 评论 -
剑指offer——二叉搜索树与双向链表
题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。分析:这个题本质上其实是对二叉搜索树的中序遍历,但是要对结点的指针稍作改动。1.先遍历左子树,将其构造成双链表,并返回链表的‘根’结点;2.得到左子树双链表的最后一个结点;3.如果左子树不为空,将当前根结点追加到左子树链表后;4.遍历右子树,将其构造成双链表,并返回链表的‘根...原创 2018-03-05 10:48:22 · 290 阅读 · 0 评论