一、树的概念 树是一些点的集合,这个集合可以为空,若不为空,则它是由一个根节点和0个或多个为空的子树组成,且每个子树都被一条来自根节点的有向边相连。 树叶:没有儿子的节点;兄弟:具有相同父亲的节点;类似还有祖父和孙子节点。 路径:节点n1,n2,n3,...,nk的一个序列,使得对于1 <= i < ...
分类:
其他好文 时间:
2017-08-25 19:25:13
阅读次数:
142
1.后序遍历,每次递归的时候最后一个节点一定是该层的根节点 2.中序遍历,根节点的左边是左子树,右边是右子树 二叉树的遍历 遍历即将树的所有结点访问且仅访问一次。按照根节点位置的不同分为前序遍历,中序遍历,后序遍历。 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍 ...
分类:
其他好文 时间:
2017-08-24 13:30:23
阅读次数:
227
二叉树是有限个元素的集合,该集合或者为空、或者有一个称为根节点(root)的元素及两个互不相交的、分别被称为左子树和右子树的二叉树组成。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。 二叉树的第i层至多有2^{i-1}个结点 深度为k的二叉树至多有 ...
分类:
编程语言 时间:
2017-08-13 15:12:35
阅读次数:
158
一.使用SimpleXML操控XML
要处理XML文件,有两种传统的处理思路:SAX和DOM。SAX基于事件触发机制,
对XML文件进行一次扫描,完成要进行的处理;DOM则将整个XML文件构造为一棵DOM
树,通过对DOM树的遍历完成处理。这两种方法各有优缺点,SAX的处理思路相对抽象,
DOM的处理过程..
分类:
Web程序 时间:
2017-08-12 22:32:39
阅读次数:
144
#include #include #include #include using namespace std; int z[30],h[30]; class Tree { public: int data; Tree *lchild; Tree *rchild; Tree() { lchild=N... ...
分类:
其他好文 时间:
2017-08-11 22:00:14
阅读次数:
145
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val( ...
分类:
其他好文 时间:
2017-08-06 12:27:07
阅读次数:
154
本日主要内容是树与图。 1.树 树的性质 树的遍历 树的LCA 树上前缀和 树的性质 树的遍历 树的LCA 树上前缀和 树的基本性质: 对于一棵有n个节点的树,必定有n-1条边。任意两个点之间的路径是唯一确定的。 回到题目上,如果题目读入的是树上所有的边,则我们应该想到: 遍历整个树的代码如下: 1 ...
分类:
其他好文 时间:
2017-08-05 00:21:55
阅读次数:
145
从二叉树的根节点出发,节点的遍历分为三个主要步骤:对当前节点进行操作(称为“访问”节点,或者根节点)、遍历左边子节点、遍历右边子节点。访问节点顺序的不同也就形成了不同的遍历方式。需要注意的是树的遍历通常使用递归的方法进行理解和实现,在访问元素时也需要使用递归的思想去理解。实际实现中对于前序和中序遍历 ...
分类:
其他好文 时间:
2017-08-01 15:46:13
阅读次数:
123
二叉树的遍历方式: 1、深度优先:递归,非递归实现方式 1)先序遍历:先访问根节点,再依次访问左子树和右子树 2)中序遍历:先访问左子树,再访问根节点吗,最后访问右子树 3)后序遍历:先访问左子树,再访问右子树,最后访问根节点 2、广度优先 按照树的深度,一层一层的访问树的节点 ...
分类:
其他好文 时间:
2017-07-30 17:12:53
阅读次数:
170
关于二叉树,基本操作都是在递归的基础上完成的,二叉树的层次遍历是队列实现。具体解释看代码 ...
分类:
其他好文 时间:
2017-07-21 00:01:02
阅读次数:
214