今天数据结构的考试有这个题,做了好久,下来后,我好好地在网上查了一下,并结合我自己的理解,总结出来了一个比较好理解的方法。这个方法可以说做起这样的题又快又准。(概括为一个口诀:先序放中间,中序分两边) 基本思想就是递归:1.取出先序的第一个节点。(先序中的节点为根节点)2.用第一个节点可以将中序分....
分类:
其他好文 时间:
2014-06-11 13:11:53
阅读次数:
316
题目:http://poj.org/problem?id=1328注意 输出 Case
:这里是有个空格的。。和之前序列想法差不多 尽可能 向一边贪心。#include #include #include #include #include
#include #include #include #i...
分类:
其他好文 时间:
2014-06-11 08:00:13
阅读次数:
252
问题:
给定的二叉查找树中,有两个节点不小心被调换了位置,现在需要将其修正,不改变树的结构。
分析:
二叉排序树的中序遍历是有序的,所以这个问题又是建立在中序遍历模板上的问题,所以我们可以对其进行中序遍历,并用一个pre指针指向当前遍历结果中的最后一个结点,即下次遍历前的前一个结点。然后就可以通过将当前结点与pre结点进行比较,来判断是否有序了。若乱序,就将这两个结点都放入到预先定义的容器中...
分类:
其他好文 时间:
2014-06-10 10:54:41
阅读次数:
153
1.系统说明输入一个正整数N,然后随机产生N个整数,创建一个二叉树(左子树≤父节点≤右子树)。使用Windows程序设计,在窗体的客户区自动地画出创建二叉树的过程,并动画演示中序遍历。2.系统要求自动计算每个节点的坐标,节点圆的半径可设置,节点间的距离可设置,左右子树的角度可设置;二叉树的大小可能超...
分类:
其他好文 时间:
2014-06-09 19:54:55
阅读次数:
208
二叉链表的C语言描述基本运算的算法——建立二叉链表、先序遍历二叉树、中序遍历二叉树、后序遍历二叉树、后序遍历求二叉树深度#include#includeusing
namespace std;class Tree{private: struct Node { char da...
分类:
其他好文 时间:
2014-06-09 18:39:49
阅读次数:
310
图的深度优先遍历是树的前序遍历的应用,其实就是一个递归的过程,我们人为的规定一种条件,或者说一种继续遍历下去的判断条件,只要满足我们定义的这种条件,我们就遍历下去,当然,走过的节点必须记录下来,当条件不满足后,我们就return,回到上一层,换个方向继续遍历。模板:
1 //邻接矩阵存储方式 2 b...
分类:
其他好文 时间:
2014-06-08 23:50:57
阅读次数:
420
题目
Two elements of a binary search tree (BST) are swapped by mistake.
Recover the tree without changing its structure.
Note:
A solution using O(n)
space is pretty straight forward. Cou...
分类:
其他好文 时间:
2014-06-08 15:32:45
阅读次数:
245
问题:
给定二叉树的前序和中序遍历,重构这课二叉树.
分析:
前序、中序、后序都是针对于根结点而言,所以又叫作先根、中根、后根(当然不是高跟)。
前序:根 左 右
中序:左 根 右
对二叉树,我们将其进行投影,就会发现个有趣的事:
发现投影后的顺序,恰好是中序遍历的顺序,这也就是为什么在构造二叉树的时候,一定需要知道中序遍历,因为中序遍历决定了结点间的相对左右位置关系。所...
分类:
其他好文 时间:
2014-06-08 15:20:12
阅读次数:
214
问题:
由中序和后序遍历构造二叉树。
分析:
Construct Binary Tree from Preorder and Inorder
Traversal
//实现
TreeNode *addNode(vector &inorder, int s1, int end1, vector &postorder, int s2, int end2)
{
...
分类:
其他好文 时间:
2014-06-08 09:56:52
阅读次数:
206
树的遍历
在学习完成树的基本结构以后,我们开始研究一些树的应用模式。访问树的全部节点,一般有三种模式,这些模式的不同之处,仅在于访问节点的顺序不同。我们把这种对节点的访问称为“遍历”,这三种遍历模式叫做前序、中序和后序。下面我们对遍历模式作更仔细的定义,同时研究使用这延续模式的例子。
前序遍历...
分类:
编程语言 时间:
2014-06-08 05:49:56
阅读次数:
323