数据结构和算法

一种简单的平衡树-AVL树

AVL 树AVL树(Adelson-Velskii 和 Laandis)树是带有平衡条件(balance condition)的二叉查找树。这个平衡条件必须要容易保持,而且他保证树的深度必须是 O(log N)。最简单的想法是要求左右子树具有相同的高度。 另一种平衡条件是要求每个节点都必须有相同高度的左子树和右子树。如果空子树的高度定义为 -1,那么只有具有 2k-1 个节

红黑树探索笔记

最近花了些时间重拾数据结构的基础知识,先尝试了红黑树,花了大半个月的时间研究其原理和实现,下面是学习到的知识和一些笔记的分享。望各位多多指教。本次代码的实现请点击:红黑树实现代码 - gist红黑树基础知识定义红黑树是带有 color 属性的二叉搜索树,color 的值为红色或黑色,因此叫做红黑树。对红黑树的每个结点的结构体定义如下:struct RBNode {

数据结构从0.2到1(一)

数据结构从0.2到1(一)为什么要选择这样的一个标题呢,当然,主要是要写一系列关于学习数据结构的文章。但是,为什么是从0.2呢?因为作为一名计算机专业毕业的学生来说,实在不好意思说自己从0到1,我真的是怕老师看到后会打过来。。。关于数据结构,可能是因为大学时没有学好,反正已经忘了十之八九,这个系列算是复习,巩固,提高。由于大学时的教材已经...所以最近想要再学习数据结构的时

[PHP内核探索]PHP中的哈希表

在PHP内核中,其中一个很重要的数据结构就是HashTable。我们常用的数组,在内核中就是用HashTable来实现。那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据结构,但是算法书籍里面没有具体的实现算法,刚好最近也在阅读PHP的源码,于是参考PHP的HashTable的实现,自己实现了一个简易版的HashTable,总结了一些心得,下面