摘要: 原文:http://www.cppblog.com/goodwin/archive/2011/08/08/152797.html理解红黑树树型结构一直是一种很重要的数据结构, 我们知道二叉查找树BST提供了一种快速查找, 插入的数据结构. 相比散列表来说BST占用空间更小,对于数据量较大和空间要求较高的场合, BST就显得大有用处了.BST的大部分操作平均运行时间为O(logN), 但是如果树是含N个结点的线性链,则最坏情况运行时间会变为O(N). 为了避免出现最坏情况我们给它增加一些平衡条件, 使它的高度最多为2log(N+1), 最坏情况下运行是间花费也接近O(logN), 这就是我下面要 阅读全文
posted @ 2013-03-31 20:52 dancingrain 阅读(338) 评论(1) 推荐(0) 编辑
摘要: 参考书籍:《Effective C++ 》《C++ Primer》《C++ 编程思想》上下册算来已经好久没有写博客了,周末抽点时间记录下最近学习的一个小问题吧。一直在使用C++写个小实验,以前没有写过特别大的工程,也很少会考虑到使用和不使用#define这个宏的好处和有点,最多也就是知道它是在预处理时期“盲目替换”代码的,因此不会牵涉到函数调用也就更不会有函数调用带来的堆栈开销。今天稍微详细了解了一下,所以几记录下来:首先,简单罗列一下#define的优点和好处:#define不分配内存,它是预编译命令,编译之前进行宏替换;使用带参数的#define可以完成类似于函数调用的功能,而不用付出函数 阅读全文
posted @ 2013-03-31 17:27 dancingrain 阅读(224) 评论(0) 推荐(0) 编辑