抽象类: 抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式由派生类来实现。同时抽象类提供了继承的概念,它的出发点就是为了继承,否则它没有存在的任何意义。所以说定义的抽象类一定是用来继承的,同时在一个以抽象类为节点的继承关系等级链中,叶子节点一....
分类:
编程语言 时间:
2015-07-05 10:49:52
阅读次数:
107
好的数据结构,对于检索数据,插入数据的效率就会非常高。常见的数据结构B+树根节点和枝节点很简单,分别记录每个叶子节点的最小值,并用一个指针指向叶子节点。
叶子节点里每个键值都指向真正的数据块,每个叶子节点都有前指针和后指针,这是为了做范围查询时,叶子节点间可以直接跳转,从而避免再去回溯至枝和根节点。
特点:
1、有n棵子树的结点中含有n个关键字,每个关键字不保存数据,只用来索引,所有数据都保存...
分类:
其他好文 时间:
2015-07-04 09:40:12
阅读次数:
237
Path Sum II : https://leetcode.com/problems/path-sum-ii/
解析:
和上一题的区别就是,要记录所有能满足条件的路径。
要保存当前的结果,并且每次递归后都要恢复递归前的结果;每当递归到叶子节点时,判断是否需要当前结果(path)保存下来。
叶节点时 sum == 0, 保存当前结果,然后逐步恢复递归前结果
叶节点时 sum != 0,不保...
分类:
其他好文 时间:
2015-07-03 17:29:20
阅读次数:
115
转载请注明出处:http://www.cnblogs.com/StartoverX/p/4617963.html 线段树是一颗二叉搜索树,线段树将一个区间划分成一些单元区间,每一个区间对应线段树的一个叶节点。对于线段树的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右.....
分类:
编程语言 时间:
2015-07-03 12:02:27
阅读次数:
118
Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构。
Trie树与二叉搜索树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀(prefix),也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。
A trie, pronounced...
分类:
其他好文 时间:
2015-06-30 16:28:06
阅读次数:
133
书是龙书
编译器中常用的方法可以分为自顶向下和自底向上的。一个是从语法分析树的顶部开始向底部构造语法分析树,一个则是从叶子节点开始,逐渐向根结点构造,这两种分析方法中,语法分析器的输入总是照着从左向右。
二义性:如果一个文法可以为某个句子生成多棵语法分析树,那么他就是二义性的。
例如例子id + id * id
消除左递归
如果一个文法中有一个非终结符号A使得对某个串a...
分类:
其他好文 时间:
2015-06-29 22:21:11
阅读次数:
231
应用场景 假设有这样一个字典结构test_dict = {'a':{'b':{'c':1}},'d':2},test_dict其实可以看作是一种树状结构,其中每个叶子节点深度不一定相同,如果我们希望输出根节点到所有叶子节点的路径,也就是a->b->c->1;d->2,该如何解决? 代码 #encod...
分类:
编程语言 时间:
2015-06-29 16:44:07
阅读次数:
262
题意:2-3树的每个结点(除了叶子外)有2或3个孩子(分支),假设是一个满2-3树,那么给出叶子的数量,求这样的树有多少棵。(注:有2个孩子的结点视为相同,有3个孩子的结点视为相同,比如倒数第2层有4个结点,且叶子有4+6=10个,即2个有2孩的结点在前面,2个有3孩的结点在后面,那么头两个结点的孩...
分类:
其他好文 时间:
2015-06-28 20:08:02
阅读次数:
109
建立一个二叉树,求其高度,首先前、中、后序遍历,求叶子数,求树深度并且判断是否为平衡二叉树。二叉树是一个典型的数据结构,华为往年的试题中也有考到这个知识点的。下面介绍几个树的重要性质:
性质1 二叉树第i层上的结点数目最多为2^(i-1)(i≥1)。
性质2 深度为k的二叉树至多有2^k-1个结点(k≥1)。
性质3 在任意-棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n...
分类:
其他好文 时间:
2015-06-28 18:55:17
阅读次数:
168
CART树的构建:$function\ cart(D)$--$D$为数据1.如果到了终止条件(如:所有x都相同,或所有y都相同,或到了指定深度),返回叶子节点2.选择 分割方式,将数据分为左树$D_l$、右树$D_r$ 2部分3.$cart(D_l),cart(D_r)$分割方式(cart的分割方式...
分类:
其他好文 时间:
2015-06-28 16:49:50
阅读次数:
141