对于一个二叉搜索树, 要想找到这棵树的最小元素值, 我们只需要从树根开始, 沿着left 孩子指针一直走, 知道遇到NULL(即走到了叶子), 那么这个叶子节点就存储了这棵二叉搜索树的最小元素。 同理, 从根节点开始, 沿着right 孩子指针, 最终找到的是最大关键字的节点。
也就是说寻找BST最小关键字的元素和最大关键字的元素的代码是对称的。伪代码如下:
TREE_MINIMUM(x...
分类:
编程语言 时间:
2014-07-21 09:28:27
阅读次数:
241
以下是二叉搜索树中查找、插入、删除的递归和非递归算法数据类型设计:1 struct BSTNode 2 {3 ElementType data; // 结点元素值4 struct Node *leftChild; // 左子树根结点5 ...
分类:
其他好文 时间:
2014-07-18 19:05:40
阅读次数:
279
GENI的核心 -- 推理机(4)求证过程分析
1、GENI知识库结构
专家系统推理机的设计运行,与其知识库结构紧密相关。
GENI知识库结构是一棵逻辑推理树。根节点是animal,即求证的目标。
Animal有2个子节点,即求证的子目标。节点或子目标,用rule表示。例如:
rule(8,"animal","mammal",[12,13],"")
rule(9,"animal","b...
分类:
Web程序 时间:
2014-07-18 18:10:04
阅读次数:
221
根据工作的需要,制作一个摆动的树做为页面的背景。为了增加页面的交互性,我又为背景中的树增加了鼠标(触控)事件,使他能够根据鼠标(触控)做出相应的动作,当手指做上下或者左右滑动的时候树会跟着摆动。先看看最终效果。...
分类:
其他好文 时间:
2014-07-06 08:55:45
阅读次数:
376
树 树:树是一个非空的有限元素的集合,其中一个元素为根(root),余下的元素(如果有的话)组成t的子树。 层次关系:层次中最高层的元素为根。其下级的元素是余下元素所构成子树的根。 兄弟:有相同父母的孩子为兄弟(sibling) 叶子:树中没有孩子的元素称为叶子。 树根是树中唯一一个没有父节点的元素...
分类:
其他好文 时间:
2014-07-05 17:23:26
阅读次数:
209
实现优先队列结构主要是通过堆完成,主要有:二叉堆、d堆、左式堆、斜堆、二项堆、斐波那契堆、pairing 堆等。1. 二叉堆1.1. 定义完全二叉树,根最小。存储时使用层序。1.2. 操作(1). insert(上滤)插入末尾 26,不断向上比较,大于26则交换位置,小于则停止。(2). delet...
分类:
其他好文 时间:
2014-06-27 00:53:45
阅读次数:
369
前/中/后缀表达式的转换 自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。 举例说明将自然表达式转换成二叉树: a×(b+c)-d ① 根据表达式的优先级顺序,首先计算(b+...
分类:
其他好文 时间:
2014-06-26 00:03:03
阅读次数:
269
因为苹果可能在不同的子树中,所以,很容易想到设状态dp_back[i][j]为以i点为树根走j步并回到i点的最大苹果数与dp_to[i][j]不回到i点的两个状态。于是,转移方程就很明显了。只是注意要减去一来一回,或者不回的边。树形DP里套背包。但这题远比这复杂,个人认为。因为在实现上细节太多。实现...
分类:
其他好文 时间:
2014-06-22 13:14:18
阅读次数:
201
树形DP的第一题,看了好几天才明白....
题目大意:
有一只蜗牛爬上某个树枝末睡着之后从树上掉下来,发现后面的"房子"却丢在了树上面, 现在这只蜗牛要求寻找它的房子,它又得从树根开始爬起去找房子。现在要求一条路径使得其找到房子所要爬行的期望距离最小。
解题思路:
影响期望的因素有树的结构,分支节点上是否有虫子,蜗牛走的路线。
对于任意一棵子树来说树的结构,分支节点上是否...
分类:
其他好文 时间:
2014-06-17 22:32:43
阅读次数:
197
1 /* 2 Dijkstra算法用优先队列来实现,实现了每一条边最多遍历一次。
要知道,我们从队列头部找到的都是到 3 已经"建好树"的最短距离以及该节点编号, 并由该节点去更新 树根 到其他点(被更新的节点可以在队列中 4
,也可以是非队列中的节点)的距离 。 5 6 ////队列中的节点都.....
分类:
其他好文 时间:
2014-06-12 19:37:39
阅读次数:
303