摘要: 本文转自: http://www.cnblogs.com/George1994/p/6934930.html 删除 因为根据BST中的规则,选择该结点的左子树中最大值和右子树中最小值替代掉原本要删除的点的值,再将改点删掉即可,所以这里只会讨论那个删掉的点。 分为以下情况: 删除结点的左右子结点均为空 阅读全文
posted @ 2018-04-18 19:01 林嵩 阅读(1183) 评论(0) 推荐(0) 编辑
摘要: 红黑树 性质 红黑树的结点都是红色或者黑色 根结点是黑色 所有叶子都是黑色(这里的叶子结点是空结点) 每个红色结点必须有两个黑色的子结点 从任何一个节点到其每个叶子的所有简单路径都包含相同数目的黑色结点 性质1和性质3总是能够保持着; 性质4只有在这些情况下才会发生作用: 增加红色结点 将黑色结点重 阅读全文
posted @ 2018-04-18 18:59 林嵩 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.chinaunix.net/uid-27411029-id-4131123.html 进程与线程的区别: 通俗的解释 一个系统运行着很多进程,可以比喻为一条马路上有很多马车 不同的进程可以理解为不同的马车 而同一辆马车可以有很多匹马来拉--这些马就是线程 假设道路的宽度 阅读全文
posted @ 2018-04-18 11:52 林嵩 阅读(11178) 评论(0) 推荐(1) 编辑
摘要: C分为四个区:堆,栈,静态全局变量区,常量区 C++内存分为5个区域(堆栈全常代 ): 堆 heap : 由new分配的内存块,其释放编译器不去管,由我们程序自己控制(一个new对应一个delete)。如果程序员没有释放掉,在程序结束时OS会自动回收。涉及的问题:“缓冲区溢出”、“内存泄露” 栈 s 阅读全文
posted @ 2018-04-18 11:43 林嵩 阅读(2522) 评论(0) 推荐(2) 编辑
摘要: 目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的, 阅读全文
posted @ 2018-04-18 11:31 林嵩 阅读(1257) 评论(0) 推荐(0) 编辑