dequedeque中的修改类接口由于deque是双端队列,所以有头插头删和尾插尾删操作。下面的栈和队列的底层都是通过的deque实现的。为什么要用deque作为其底层数据结构呢?主要是因为:栈和队列都只需在一头进行操作,故不需要迭代器,只要具有pushback和popback的功能即可,在元素增长时deque比vector效率更高、内存使用率高,所以用deque作为底层数据结构更合适。stack
分类:
其他好文 时间:
2019-10-23 16:38:37
阅读次数:
105
栈:特点:先进先出成员函数:stack()--构造empty()--判空size()--求个数top()--返回栈顶元素push--压栈pop()--出栈应用最小栈创建:(可直接返回栈中最小值,即在该栈中查找最小值复杂度为O(1))因为栈中最小值是随push和pop操作变化的,进栈时min会更新,出栈min也可能会更新,所以每个元素进栈时当前栈中最小值应该被保存下来//法一:classMinSta
分类:
其他好文 时间:
2019-10-22 12:36:56
阅读次数:
66
双端队列是特殊的队列,它与队列不同的是可以将元素加入头或尾,可以从头或尾取出元素(滑稽-这部就是栈和队列结合了吗)。 c++标准库 头文件 定义 取出队头,尾元素 访问队头,尾元素 向队头,尾加入元素 单调队列是在队列的基础上使它保持有序,与单调栈类似,所以它反应的也是一个区间内的最值问题 例:po ...
分类:
编程语言 时间:
2019-10-21 11:25:28
阅读次数:
75
一,顺序栈的基本操作 同顺序表和链表一样,栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构,如图 1 所示。 图 1 栈存储结构示意图 从图 1 我们看到,栈存储结构与之前所学的线性存储结构有所差异,这缘于栈对数据 "存" 和 "取" 的过程有特殊的要求: 2,在栈中,无论是存数据还是取数据 ...
分类:
其他好文 时间:
2019-10-14 23:41:30
阅读次数:
171
关于栈与队列 栈与队列是特殊的线性表。 访问,插入,删除等操作只能在栈顶进行;对于队列,元素只能从队尾插入,从队头删除和访问。 换句话说,栈和队列是有操作限制的线性表。 顺序存储的栈称为顺序栈;链式存储的栈称为链式栈。 基于数组实现栈 基于链表实现栈 基于数组实现队列 基于链表实现队列 ...
分类:
其他好文 时间:
2019-10-08 14:20:51
阅读次数:
85
一: 栈模板 1 类内编写 2 类外编写 二: 队列 1 类内编写 2 类外编写 ...
分类:
其他好文 时间:
2019-10-07 23:43:49
阅读次数:
132
先来回顾一下栈和队列的基本概念: 相同点:从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。 不同点:栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。 队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。它们是完全不同的数据类型。除了它们各 ...
分类:
编程语言 时间:
2019-10-05 16:31:44
阅读次数:
98
栈及其基本运算 栈(Stack)是一种特殊的线性表(一种数据结构,前后件从属关系描述线性表,线性表中所有元素所占的存储空间是连续的,在存储空间上是按逻辑顺序依次存放的。),它所有的插入与删除都限定在表的同一端进行,允许插入与删除的一端称为栈顶,不允许的一端称为栈底。当栈中没有元素时,称为空栈。 栈的 ...
分类:
其他好文 时间:
2019-09-20 23:26:43
阅读次数:
115
啦啦啦啦啦啦啦啦绿绿绿绿绿绿 1.使用 2.变量 3.***数据变量: 4. ***数据类型转换: 5. ***运算符: 6.***数组API: 7.***排序: 8.***栈和队列: 9.*** 二维数组: 10.****String API: 11.***正则表达式: 12.**RegExp 1 ...
分类:
编程语言 时间:
2019-09-18 01:36:31
阅读次数:
140