数据结构
文章平均质量分 88
ZLambert
这个作者很懒,什么都没留下…
展开
-
栈
线性结构 - 栈 栈是一种后进先出的数据结构。栈限定为只能从一端进行插入和删除操作。比如一个小桶,小桶的直径只能放一个小球,我们现在小桶内依次放入2、1、3号小球。假如你现在需要拿出2号小球,那就必须先将3号小球拿出,再拿出1号小球,最后才能将2号小球拿出来。在刚才取小球的过程中,我们最先放进去的小球最后才能拿出来,最后放进去的小球却可以最先拿出来。如下图所示:图 栈示意图...原创 2017-03-25 09:11:19 · 363 阅读 · 0 评论 -
队列
线性结构 - 队列 新学期开始了,小哈是小可可的新同桌(小哈是个美女哦~),小可可向小哈询问QQ号,小哈当然不会直接告诉小可可啦,原因麽你懂的。所以小哈给了小可可一串加密过的数字,同时小哈也告诉了小可可解密规则:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数放到这串数的末尾,再将第5个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删...原创 2017-03-25 09:12:19 · 651 阅读 · 0 评论 -
链表
线性结构 - 链表 在存储一大波数的时候,我们通常使用的是数组,但有时候数组显得不够灵活,比如下面这个例子: 有一串已经排好序的数2 3 5 8 9 10 18 26 32。现在需要往这串数中插入6使其得到的新序列扔符合从小到大排列。如我们使用数组来实现这一操作,则需要将8和8后面的数都依次往后挪一位,如下: 这样的操作明显很耽误时间,如果使用链表则会快很多。那...原创 2017-03-25 09:13:16 · 429 阅读 · 0 评论 -
KMP算法
假设现在我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢? 1. 暴力匹配算法 如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有:如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符; 如果失配(即S[i]! = P[j]),令i = i - (j - ...原创 2017-03-27 18:47:08 · 477 阅读 · 0 评论