顺序容器 顺序容器有以下三种:可变长动态数组 vector、双端队列 deque、双向链表 list。 它们之所以被称为顺序容器,是因为元素在容器中的位置同元素的值无关,即容器不是排序的。将元素插入容器时,指定在什么位置(尾部、头部或中间某处)插入,元素就会位于什么位置。 关联容器 关联容器有以下四 ...
分类:
其他好文 时间:
2020-02-06 21:30:46
阅读次数:
65
单调栈、单调队列及优先队列 [TOC] 1.单调队列 单调队列的描述:指队列中元素之间关系具有单调性,而且队首和队尾都可以出队,但是只有队尾可以进行入队操作。 其重要作用是找到前n个后者后n个数的最值。 其具体操作是:假设单调队列是单调递减队列,假设在插入元素v时,将队列尾部的元素同v比较,如果队列 ...
分类:
其他好文 时间:
2020-02-02 23:24:07
阅读次数:
75
初始化双向链表后使用尾插法插入元素,然后对插入的元素进行删除,发现不能删除链表最后一个元素... 控制台没反应,删除最后一个元素失败了,然后思考了几分钟,发现问题所在... 控制台正常输出,问题解决了... ...
分类:
其他好文 时间:
2020-02-02 17:47:02
阅读次数:
162
vector,向量,有序数列。连续的空间存储,可以使用[ ]操作符,可以快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间随机的插入、删除元素要慢。如果空间不够时,有一个重新分配更大空间的过程。 入门使用 cpp vector vec;//创建一个空vector。 vector vec = ...
分类:
编程语言 时间:
2020-02-02 14:06:30
阅读次数:
88
栈和队列 ·栈和队列是两种常用的、重要的数据结构 ·栈和队列是限定插入和删除只能在表的“端点”进行的线性表 栈 只能在队尾插入,只能在队尾删除 -- 后进后出 表尾称为栈顶;表头称为栈底 插入元素到栈顶(即表尾)的操作,称为入栈 从栈顶删除最后一个元素的操作,称为出栈 注意:函数调用的流程就是入栈和 ...
分类:
其他好文 时间:
2020-01-31 12:45:46
阅读次数:
84
插入排序,见名知意思,就是将元素插入到它应该待的位置,来实现排序。什么叫应该待的位置呢?通俗点说,插入排序的原理是将一个元素插入到有序数组,不断地扩展有序数组的长度实现整个数组的有序。 插入排序进行的移位操作有两个: 1、是将要插入元素清除,其他与有序数组无关元素后移 2、是在找到了插入位置之后的插 ...
分类:
编程语言 时间:
2020-01-31 12:07:14
阅读次数:
67
Java之ArrayList 方法: add(o: E): void 在list的末尾添加一个元素o add(index: int, o: E): void 在指定的index处插入元素o clear(): void 从list中删除所有元素 contains(o: Object): boolean ...
分类:
其他好文 时间:
2020-01-17 21:08:14
阅读次数:
66
Deque 双端队列,既可以当队列使用,也可以当栈使用。是一个接口。我们来看看 Deque 当作栈和队列时对应的方法。 队列: | Queue Method | Equivalent Deque Method | 说明 | | | | | | | | 向队尾插入元素,失败则抛出异常 | | | | ...
分类:
编程语言 时间:
2020-01-12 21:57:31
阅读次数:
81
因为这里没有明确指出堆是指数据结构还是存储方式,所以两个尝试都回答一下。 一.堆和栈作为数据结构 1.堆(heap),也叫做优先队列(priority queue),队列中允许的操作是先进先出(FIFO),在队尾插入元素,在队头取出元素。而堆也是一样,在堆底插入元素,在堆顶取出元素,但是堆中元素的排 ...
分类:
其他好文 时间:
2020-01-12 13:12:03
阅读次数:
66
直接插入排序 思想 插入排序(Insertion Sort)类似整理桥牌的过程:将右手拿到的牌(未排序)在左手已排序的牌中从后向前扫描,找出对应位置并且插入此牌。 在此过程中,要将已经排序的元素逐步向后挪,给待插入元素腾出空间。 实现 性能:折半插入排序将元素比较次数减少为$O(nlogn)$,但是 ...
分类:
编程语言 时间:
2020-01-01 23:58:27
阅读次数:
161