数据结构
文章平均质量分 78
qte_acm
这个作者很懒,什么都没留下…
展开
-
B树的理解和实现
对数据结构的从新学习,发现数据结构真是一本好课程啊,后悔当初上课的时候没有认真学习。原创 2014-04-16 19:39:11 · 1058 阅读 · 0 评论 -
字符串算法——KMP算法
KMP算法是对字符串匹配算法的一个重大改进 , 创造性的利用子串本身的特性 , 来改进算法的效率。KMP算法的关键或则精华 , 就是在与 next[ ] 的计算。假设存在主串 S 和 子串 T , 我们在某一趟匹配中 , 发现 T(k) != S(i+1)那我们就得到了一个部分的匹配结果即:T(1).......T(k-1) = S(i-k+1原创 2014-03-12 21:01:37 · 594 阅读 · 0 评论 -
排序二叉树的实现和理解
数据结构的从新学习原创 2014-04-12 17:40:09 · 1601 阅读 · 0 评论 -
用堆实现的优先队列
最近从新学习了一编数据结构 , 发现自己以前根本就没认真去学习这门课程。通过完全二叉树而得到的最大(小)堆 , 从而得到快速的优先队列。最大(小)堆:是一颗完全二叉树 , 只不过所有根节点都大于(小于)其子节点。当往堆中增加一个元素时,需要重新排列这个最大堆 , 但时间只需要log2(n+1)当删除根元素时 , 也需要重新排列 , 但时间也是lo原创 2014-03-09 19:46:46 · 1214 阅读 · 0 评论 -
uva 11988 这题可以看出c++中string效率的底下
用c语言实现#include #include #include using namespace std;typedef struct node{ char x; struct node *next;}chan;chan *root = new chan;char a[100010];int main(){ while(scanf("%原创 2014-04-28 22:03:32 · 929 阅读 · 0 评论 -
trie树 和 树的存储--左儿子右兄弟 --- uva 11732
trie树也叫前缀树 , 是一种字符串的快速查找树 , 有就是一种树。因为trie树 , 是一种树 ,因此我们先讨论树的存储。树的存储:左儿子右兄弟对于普通情况下的树 , 我们会采用儿子节点法 , 来存储 , 但在trie中 , 往往采用左儿子右兄弟的存储法 , 更为快速。左儿子右兄弟就是说,在树中 , 每个结点有两个指针结点 , 一个指向其儿子 , 一个指向其兄弟。原创 2014-04-24 15:35:29 · 5246 阅读 · 1 评论 -
再谈kmp算法 , 由poj3461
kmp算法相对于BF算法是不要回溯 , 不需要回溯 , 是因为在匹配过程中 , 不移动匹配串只移动模式串。在求解next数组时 , 下面使用了两种方法。#include #include #include using namespace std;char s[1000000]; //被匹配字符串char t[100000]; //匹配字符串int next[1原创 2014-03-25 20:38:03 · 918 阅读 · 0 评论 -
RMQ问题的解析和高效率算法--uva11235
RMQ--范围最小值问题 , 给出一个n个元素的数组A1.......An ,原创 2014-04-21 15:14:43 · 723 阅读 · 0 评论 -
树状数组——poj 3928
树状数组是一个思想很巧妙的算法。树状数组主要是求动态连续和、查询等问题先理解lowbit(i) , i是指数组中的位置(从1开始) , lowbit(i) 是i的二进制表达式中最右边的1所对应的值 , 也就是说lowbit(i) = i&(-i)假设a[i]存储的是树 , c[i]是表示a[i] + a[i-1].......+a[i-lowbit(i)] , 那么这时原创 2014-04-18 22:12:15 · 821 阅读 · 0 评论 -
数据结构中排序方法汇总
对所学排序的总结原创 2014-04-17 17:32:07 · 1105 阅读 · 0 评论 -
字符串匹配算法——BM算法
BM算法是对KMP算法的一种改进 , 它的效率比KMP算法快3~5倍BM算法主要根据两个原则: 1、坏字符 , 2、好后缀。假设存在主串S , 长度为s_l, 模式串T中 , 长度为t_l1、坏字符如果在主串S中存在一个字符 , 并且这个字符在模式串T中不存在 , 那么模式串向右移t_l位。 (因为,如果这样的字符存在 , 那么在第一次匹配的时原创 2014-03-13 21:10:10 · 1384 阅读 · 0 评论