Stack
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。读和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈,删除则称为退栈。 栈也称为后进先出表。
底层结构:为deque
deque介绍
- deque(双端队列):是一个双开口的“连续空间”的数据结构
双开口
:可以在首尾两端进行插入和删除操作连续空间
:deque并不是真正连续的,而是由一段段连续的小空间组合而成的- deque类似于一个动态的二维数组
成员函数:
empty | 测试 stack 是否为空。空为true,反之false |
pop | 从 stack 的顶部删除元素。void pop() |
push | 将元素添加到 stack 顶部。void push(value) |
size | 返回 stack 中的元素数量。int size() |
top | 返回对 stack 顶部元素的引用。int top() |
示例:
#include<stack>
using namespace std;
int main(){
stack<int> s;
cout << s.empty() << endl;
s.push(1);
s.push(2);
cout << s.empty() << endl;
cout << s.size() << endl;
cout << s.top() << endl;
s.pop();
cout << s.empty() << endl;
cout << s.size() << endl;
cout << s.top() << endl;
/*
1
0
2
2
0
1
1
请按任意键继续. . .
*/
}