数据结构学习
刘军卫
linux爱好者,主要致力于虚拟化云计算方面的研究,尤其专注于openstack,kvm,linux kernel等源码和架构的研究
微博:Marshal-Liu
展开
-
看到的一份不错的介绍“堆和栈的区别”的资料 [转]
堆和栈的区别(转贴,作者为一c++程序员,具体姓名不清楚) 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—> 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似原创 2009-03-12 12:16:00 · 1466 阅读 · 0 评论 -
红黑树详细介绍
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除原创 2009-03-25 10:18:00 · 1448 阅读 · 0 评论 -
红黑树
红黑树一棵红黑树是指一棵满足下述性质的二叉搜索树(BST, binary search tree):1. 每个结点或者为黑色或者为红色。2. 根结点为黑色。3. 每个叶结点(NIL)都是黑色的。4. 如果一个结点是红色的,那么它的两个子节点都是黑色的(也就是说,不能有两个相邻的红色结点)。5. 对于每个结点,从该结点到其所有子孙叶结点的路径中所包含的黑色结点数量必须相同。红黑树的每个节点上的属性除原创 2009-03-25 12:55:00 · 1290 阅读 · 0 评论