我的代码是:TreeNode* buildTree (vector &inorder, vector &postorder){ if (inorder.empty ()) { return nullptr; } unordered_map inItDic; ...
分类:
编程语言 时间:
2015-07-24 20:34:30
阅读次数:
158
首先。先序遍历是先访问根节点。然后左节点 然后右节点。从根节点开始 直到它的子节点没有左节点才开始回溯访问上一个节点的右节点。同理。中序遍历先访问左节点然后是父节点然后是右节点。从根节点开始 直到它的孩子节点没有左节点才开始回溯访问该节点然后是它的父节点然后是它的兄弟右节点。也就是说 每次访问一个节...
分类:
其他好文 时间:
2015-07-24 10:29:48
阅读次数:
98
二叉搜索树定义:二叉搜索树是一棵二叉树来组织的。二叉搜索中的关键字总是以满足二叉树搜索性质的方式来存储的。设x是二叉树中的一个节点。如果y是x左子树中的一个结点,那么y.key<=x.key。如果y是x右子树中的一个结点,那么y.key>=x.key。算法的分析:假如我们选择中序..
分类:
其他好文 时间:
2015-07-24 01:39:57
阅读次数:
122
题目描述线索二叉树概念
1.定义
n个结点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为”线索”)。这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。...
分类:
其他好文 时间:
2015-07-22 06:58:27
阅读次数:
169
树的递归定义
树是n(n>0)个结点的有限集,这个集合满足以下条件:
⑴有且仅有一个结点没有前驱(父亲结点),该结点称为树的根;
⑵除根外,其余的每个结点都有且仅有一个前驱;
⑶除根外,每一个结点都通过唯一的路径连到根上(否则有环)。这条路径由根开始,而未端就在该结点上,且除根以外,路径上的每一个结点都是前一个结点的后继(儿子结点);
由上述定义可知,...
分类:
其他好文 时间:
2015-07-21 14:58:12
阅读次数:
114
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历的序列{4,7,2,1,5,3,8,6},则重建出下图所示的二叉树并输出它的头结点。分析:前序遍历的第一个元素就是根...
分类:
其他好文 时间:
2015-07-21 10:30:03
阅读次数:
126
树的遍历的实现就是典型的递归思想。
/*
* description:树的遍历示例,递归
* 访问顺序:
* 前序: 当前节点 - 左子树 - 右子树
* 中序: 左子树 - 当前节点 - 右子树
* 后序: 左子树 - 右子树 - 当前节点
*
* write...
分类:
编程语言 时间:
2015-07-20 23:47:22
阅读次数:
240
TreeNode定义 1 public class TreeNode { 2 public TreeNode left; 3 public TreeNode right; 4 public int val; 5 6 public TreeNode(int v...
分类:
其他好文 时间:
2015-07-20 22:48:03
阅读次数:
133
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。...
分类:
其他好文 时间:
2015-07-20 12:59:00
阅读次数:
139
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、...
分类:
编程语言 时间:
2015-07-20 12:34:09
阅读次数:
146