1.重建二叉树 问题描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 2.二叉树的下一个结点 给定一个二 ...
分类:
其他好文 时间:
2020-04-16 15:10:56
阅读次数:
60
栈的用途比较广 如:子进程调用,递归调用,表达式转换,二叉树遍历,深度优先搜索 等等 实现思路: 1)top=-1时栈为空,top=maxsize-1栈满 C#代码实现: 1 using System; 2 3 namespace 数据结构 4 { 5 public class ArrayStack ...
分类:
编程语言 时间:
2020-04-16 09:18:27
阅读次数:
73
给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 解:这道题乍一看,想法是用栈,对根节点 ...
分类:
其他好文 时间:
2020-04-10 00:21:25
阅读次数:
54
题目描述: 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(val ...
分类:
其他好文 时间:
2020-04-05 20:08:42
阅读次数:
79
算法源代码在 "Veeupup Github" 考点: 二叉搜索树遍历方式和性质运用 对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。 现在我们给出一个整数键值序列,请编写程序 ...
分类:
其他好文 时间:
2020-04-04 19:00:54
阅读次数:
75
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 思路步骤: 1.确定根节点root;2.遍历序列(除去root结点),找到第一个大于root的位置,则该位置左边为左子树,右边为右子树;3.遍历 ...
分类:
其他好文 时间:
2020-04-03 12:07:23
阅读次数:
64
高级树、AVL 树和红黑树 二叉树遍历 Pre order/In order/Post orde 1. 前序(Pre order):根 左 右 2. 中序(In order):左 根 右 3. 后序(Post order):左 右 根 示例代码 二叉搜索树 Binary Search Tree 二叉 ...
分类:
其他好文 时间:
2020-03-29 01:24:53
阅读次数:
83
二叉树遍历 1.前序遍历(Pre order Traversal) 2.中序遍历(In order Traversal) 3.后序遍历(Post order Traversal) 逆推重建二叉树 前序遍历序列+中序遍历序列 1. 获取前序遍历序列第一个元素A,该元素是二叉树根结点中保存的关键字。 2 ...
分类:
其他好文 时间:
2020-03-27 19:47:27
阅读次数:
87
树遍历: 根节点=D=Degree 左节点=L=Left 右节点=R=Right 1.前序遍历(DLR) 2.中序遍历(LDR) 3.后序遍历(LRD) 4.层次遍历(一层一层的遍历) 前三种遍历均可用递归或者非递归的方式来遍历。 层次遍历可以设一个队列,把元素放在队列里,每次输出队头元素。 图遍历 ...
分类:
其他好文 时间:
2020-03-23 18:40:30
阅读次数:
84
1.二叉树遍历的迭代模板 "前序遍历" 前序遍历的顺序是根左右,为了防止破坏树结构,我们将root地址给了tmp,开始只要tmp不空,他一定是根节点或左节点,因为在if语句中我们令tmp = tmp left,因此在if语句中我们把相应的val值给了ans,如果tmp空了,说明左节点遍历完了,我们找 ...
分类:
编程语言 时间:
2020-03-16 09:25:36
阅读次数:
55