"."代表空树,程序分别以先序、中序和后序的方式递归遍历二叉树,再以中序非递归的方式遍历二叉树,并以中序递归方式输出叶子结点并统计叶子结点的个数。最后将二叉树线索化并中序遍历线索二叉树。...
分类:
其他好文 时间:
2014-11-03 10:18:08
阅读次数:
215
这次是彻底把划分树搞明白了,与此同时发现了模版的重要性。写程序一个字符都不能错啊~~~
划分树详解:点击打开链接
题意:求一组数列中任意区间不大于h的个数。
这个题的做法是用二分查询 求给定区间内的中值再与K进行比较。
重点介绍划分树:
数据结构:
t[20][maxn] // 树结构,划分树存储
sum[20][maxn] // 记录该行[l,i] 中i到...
分类:
其他好文 时间:
2014-10-18 12:42:41
阅读次数:
207
最近在学习的时候,经常看到使用Trie树数据结构来解决问题,比如“ 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。”
该如何解决? 有一种方案就是使用Trie树加 排序实现 。
什么是Trie 树呢?也就是常说的字典树,网上对此讲得也很多,简单补充一下个人理解: 它实际上相当于把单词的公共部分给拎出来,这样一层一层往上拎直...
分类:
编程语言 时间:
2014-10-15 22:19:34
阅读次数:
281
数据结构学的递归了,深入了解后写一个三序非递归的版本。//测试数据:abd##eg##h##c#f###include #include typedef char ElemType;typedef struct Node{ ElemType elem; struct Node *lchi...
分类:
其他好文 时间:
2014-10-09 22:32:07
阅读次数:
265
Trie树,又称为字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树数据结构。
用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。
Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
它有3个基本性质:
1、根节点不包含字符,除根节点外每一个节点都只包含一个字符。
2、从根节点到某一节点,路径上经过的...
分类:
其他好文 时间:
2014-09-16 23:48:21
阅读次数:
486
//哈夫曼树构造的基本思想,从list中取出最小的两个节点,构造出他们的父节点,
//然后将这两个节点从list中删除,将他们的父节点插入list中,左孩子code设置为0,右孩子code设置为1,
//直到list为空。
//接下来遍历以list中节点为根节点的树。...
分类:
其他好文 时间:
2014-09-16 17:29:00
阅读次数:
204
笛卡尔树
笛卡尔树是一种特定的二叉树数据结构,可由数列构造,在范围最值查询、范围top k查询(range top k queries)等问题上有广泛应用。它具有堆的有序性,中序遍历可以输出原数列。笛卡尔树结构由Vuillmin(1980)[1]在解决范围搜索的几何数据结构问题时提出。从数列中构造一棵笛卡尔树可以线性时间完成,需要采用基于栈的算法来找到在该数列中的所有最近...
分类:
其他好文 时间:
2014-09-03 22:50:27
阅读次数:
289
二叉查找树是一种树数据结构,它与普通的二叉树最大的不同就是二叉查找树满足一个性质:对于树中的任意一个节点,均有其左子树中的所有节点的关键字值都不大于该节点的关键字值,其右子树中的任意一个节点的关键字值都不小于该节点的关键字值。在二叉查找树上可以进行搜索、取最小值、取最大值、取指定节点的前驱、取指定节点的后继以及插入和删除节点操作,因此二叉查找树和堆(大顶堆和小顶堆)一样,也可以做优先队列,都能够在 O(lgn) 的时间内取得集合的最大值和最小值。一个二叉查找树的期望高度为O(lgn),因此在二叉查找树上的基...
分类:
其他好文 时间:
2014-08-27 01:40:47
阅读次数:
273
这里没再用到先申请大Node数组的方法了,想练练写动态内存分配和释放的,一次OK了,也没怎么出错啊,开心~
方法二 - Code:
//给出一个二叉树的先序遍历和中序遍历,输出它的后序遍历
//直接构造的方法白书已给出。这里是先递归构造二叉树,然后进行后序遍历。
#include
#include
#include
#define MAXN 1000
typedef struct nod...
分类:
其他好文 时间:
2014-08-26 13:42:56
阅读次数:
253
注意:区间树和线段树不一样哦,线段树是一种特殊的区间树。
区间树:
区间树是在红黑树基础上进行扩展得到的支持以区间为元素的动态集合的操作,其中每个节点的关键值是区间的左端点。通过建立这种特定的结构,可是使区间的元素的查找和插入都可以在O(lgn)的时间内完成。相比于基础的红黑树数据结构,增加了一个max[x],即以x为根的子树中所有区间的断点的最大值。逻辑结构如下所示:...
分类:
其他好文 时间:
2014-08-21 17:22:04
阅读次数:
331