摘要: 一. 什么是数据结构 解决问题方法的效率跟数据的组织方式有关 图书馆放书:(考虑插入和查找的难易) 解决问题方法的效率跟空间的利用效率有关 第二种递归输出当N特别大时,会导致存储空间不够,溢出,递归函数吃掉所有空间,爆掉了 解决问题方法的效率跟算法的巧妙程度有关 多项式:f(x)=a0+a1x+.. 阅读全文
posted @ 2018-05-11 11:31 小雪SS 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 学习笔记目录 阅读全文
posted @ 2018-05-11 10:56 小雪SS 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 单链表,弄清楚可stl中list的区别 ListNode的结构 如何向ListNode中插入新的结点:从键盘输入 逆序输出所有元素 阅读全文
posted @ 2018-05-09 17:24 小雪SS 阅读(35218) 评论(0) 推荐(0) 编辑
摘要: 简介: 一棵AVL树有如下必要条件: 条件一:它必须是二叉查找树。(左<根<右) 条件二:每个节点的左子树和右子树的高度差至多为1。 AVL相关概念: 平衡因子:将二叉树上节点的左子树高度减去右子树高度的值称为该节点的平衡因子BF(Balance Factor)。 对于平衡二叉树,BF的取值范围为[ 阅读全文
posted @ 2018-05-08 16:30 小雪SS 阅读(876) 评论(0) 推荐(0) 编辑
摘要: 红黑树简介: 所谓红黑树,就是平衡的扩充二叉搜索树,红黑树与AVL都是BST的平衡版本,相比AVL的完全平衡,红黑树只要求局部平衡,因此当向红黑树中插入和删除节点时,需要的调整比AVL要少,统计性能要好于AVL树,C++ STL中的map、set、multimap和multiset都应用了红黑树的变 阅读全文
posted @ 2018-05-08 14:27 小雪SS 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 内存池出现原因:内存碎片 首先我们需要明确, 内存池的目的到底是什么? 首先你要知道的是, 我们每次使用new T来初始化类型T的时候, 其实发生了两步操作, 既然内存分配耗时, 那我们很容易想到的就是一次性分配一大块内存, 然后在用户需要的时候再划分其中一部分给用户, 这样的话, 一次分配, 多次 阅读全文
posted @ 2018-05-08 11:00 小雪SS 阅读(5639) 评论(0) 推荐(1) 编辑
摘要: 1.1 特性 2.1 迭代器 unordered_map的迭代器是一个指针,指向这个元素,通过迭代器来取得它的值。 它的键值分别是迭代器的first和second属性 所以这里‘.'和’->‘是有区别的:->是间接地址取值符;.是直接地址取值符。 与map相比,运行时间和占用率都比较少 参考文章: 阅读全文
posted @ 2018-05-06 16:51 小雪SS 阅读(180) 评论(0) 推荐(0) 编辑
摘要: map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,map中的元素是自动按Key升序排序,所以不能对map用sort函数; map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点 阅读全文
posted @ 2018-05-06 11:49 小雪SS 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 当缓冲区中有残留数据时,cin函数会直接去读取这些残留数据而不会请求键盘输入。而且,回车符也会被存入输入缓冲区中。 c++用于清空输入缓存的函数有三个:cin.clear(),cin.sync(),cin.ignore()。 cin.clear()是用来更改cin的状态标示符的,cin在接收到错误的 阅读全文
posted @ 2018-05-04 17:06 小雪SS 阅读(1309) 评论(0) 推荐(0) 编辑
摘要: 出错代码段: switch (t) { case 0: int a = 0; break; default: break; }编译时提示:“error C2361: initialization of 'a' is skipped by 'default' label”。这怎么可能? C++约定,在 阅读全文
posted @ 2018-05-04 10:23 小雪SS 阅读(271) 评论(0) 推荐(0) 编辑