数据结构与算法
文章平均质量分 81
EverlightGe
这个作者很懒,什么都没留下…
展开
-
红黑树的C++实现
红黑树的C++实现关于红黑树,可以参考《算法导论》第三版第13章,在CSDN上也有很多文章讲述,在此不再具体讲述。主要说一下自己对红黑树的一些理解。1.红黑树是平衡树的一种,红黑树不同于AVL树,它牺牲了严格的高度平衡的,只要求局部的达到平衡要求,从而降低了对旋转的要求,提高了性能。严格意义上,红黑树的高度至多为2lg(n+1)2.在算法导论中,红黑树的实现有一个很重要的一点就是设置了哨兵nil,哨原创 2016-01-24 21:56:46 · 461 阅读 · 0 评论 -
AVL树
AVL树是一种带有平衡性质的二叉查找树,一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树(空树的高度定义为-1).它保证树的深度是O(logN)。我们知道,二叉查找树的平均深度为O(logN),但是,如果你顺序插入1,2,3,4,5,6……,它会产生一颗高度为O(N)的树。而AVL树可以避免这种情况,因为它有平衡的性质,当任一节点的左子树与右子树的高度差达到2时,可以自动调节树的结原创 2017-01-13 21:41:09 · 207 阅读 · 0 评论 -
最长回文子串
回文串:如果一个字符串正着读和反着读是一样的,那么它就是一个回文串。例如,a,aba,abba,aaaa等都是回文串。 最长回文子串问题是指,给定一个字符串,求出这个字符串中最长的连续的回文子串。 最长回文子串问题容易与最长回文序列问题混淆,最长回文字串是在给定字符串中连续的回文子串,而最长回文序列问题中可以不连续。例如,给定一个字符串abcbdda,这个字符串的最长回文子串是abc或bcb,而原创 2017-03-31 13:47:19 · 304 阅读 · 0 评论 -
反转链表
链表(有头节点,c语言) 反转链表原创 2017-01-10 10:31:58 · 241 阅读 · 0 评论 -
kmp算法
学习KMP算法的时候,这篇博客KMP算法详解给了我很大帮助,不过博客中有些内容对于初学者还是理解困难,现在在这篇博客的基础上进行整理,希望把KMP算法讲解的更清楚一些. kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是遍历a的每一个位置,然后从该位置开始和b进行原创 2017-07-06 15:46:48 · 248 阅读 · 0 评论