一棵树是N个节点和N-1条边的集合。因为,每条边都将某个节点连接到它的父亲,而除去根节点外每一个节点都有一个父亲。
二叉树:每个节点都不能有多于两个的儿子。深度平均值为O(logN)。
使二叉树成为二叉查找树的性质是,对于树中的每个节点X,它的左子树中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值。
在程序中,一定要记得处理的根节点为空的情况。除了删...
分类:
其他好文 时间:
2014-07-22 23:05:15
阅读次数:
231
属性
说明
Nodes
获取分配给树视图控件的树节点集合
PathSeparator
获取或设置树节点路径所使用的分隔符串
SelesctedNode
获取或设置当树节点选定时所使用的图像列表索引值
ShowNodeToolTips
获取或设置一个值,用以指示树图中的树节点是否经过排序
VisibleCount
获取树视图控件黄总完...
分类:
其他好文 时间:
2014-07-22 23:04:34
阅读次数:
324
题意:在一个公司中要举办一个聚会,每一个员工有一个奉献值。为了和谐规定直接上下级不能一起出席。让你找出奉献值之和最大为多少。思路:dp[v][1]表示当前结点选,能获得的最大奉献值,dp[v][0]表示当前节点不选能获得的最大奉献值。状态转移:dp[v][0]
= max(dp[v][0], ∑ma...
分类:
其他好文 时间:
2014-05-01 22:30:47
阅读次数:
485
一、 序言
上一篇文章中,给出了 trie 树的一个实现。可以看到,trie 树有一个巨大的弊病,内存占用过大。
本文给出另一种数据结构来解决上述问题---- Ternary Search Tree (三叉树)
二、数据结构定义
Trie 树中每个节点包含了 26 个指针,但有很大一部分的指针是 NULL 指针,因此浪费了大量的资源。
一种改进措施就是,以一棵树来代替上述的指针数组。...
分类:
其他好文 时间:
2014-05-01 17:49:30
阅读次数:
326
题目:
Given a sorted (increasing order) array, write an algorithm to create a binary tree with minimal height.
翻译:
给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树。
思路:
要使二叉树的高度最小,则要尽量使其左右子树的节点数目相当,自然就考虑到将其构造成为二叉排序树,且将有序数组的中间大的数作为根节点,这样得到的二叉树的高度便是最小的。...
分类:
其他好文 时间:
2014-05-01 17:48:45
阅读次数:
321
图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单。树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接。在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接。
图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始。
遍历
1.概念
从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问...
分类:
其他好文 时间:
2014-05-01 17:34:30
阅读次数:
321
图的连通分量,关节点和桥
====
对于有向图,我们称其一个子图是强连通分量,是指任意两点u,v, 都有两条路径u到v和v到u。
对于连通无向图,我门称其一个子图是双连通分量,是指任意两点u,v,存在一个圈包含u,v。与无向图相关联的还有关节点x,是指去掉x,图不连通;桥(u,v)是指去掉这条边,图不连通。
求解算法的要义在于首先要理解:
树边-前向边-后向边-交叉边
"Conside...
分类:
编程语言 时间:
2014-04-30 22:37:40
阅读次数:
448
XPath 语法
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。
XML 实例文档
我们将在下面的例子中使用这个 XML 文档。
Harry Potter
29.99
Learning XML
39.95
XPath 使用路...
分类:
其他好文 时间:
2014-04-30 22:18:39
阅读次数:
327
前序:
(二叉)堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该节点值的那个元素对应。
树的每一层都是填满的,最后一层除外。
树的根为a[1] (在这里是从1开始的,也可以从0开始),给定了某个节点的下标i,其父节点为i/2,左二子为2*i,右儿子为2*i+1。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个...
分类:
其他好文 时间:
2014-04-30 22:15:38
阅读次数:
434
Splay 树的比较基本的序列维护操作, 用getSeg( int l, int r) 获取要操作的区间
若:获取区间[l,r],非空,getSeg(l,r),然后KT指向区间[l,r]
若:获取区间为空,如当要在l位置插入一个值时,则getSeg(l,l-2),然后可在KT赋值新节点
D. Cup Trick
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-04-30 22:14:40
阅读次数:
326