在C++的标准库(STL)中,实现了stack和queue,并提供了一些基本操作.
1. 栈(stack)
栈是一种只能在一端进行插入和删除操作的线性表, 其中允许进行插入或删除操作的一段称为栈顶(top).栈的存储结构特点是先进后出(FILO).
栈的应用:
- 浏览器的"回退"功能;
- 代码中的"括号匹配"问题;
- 数值的进制转换功能; 等等.
基本操作: #include<stack>
- push() : 入栈,在栈顶增加元素; 例: s.push(x);
- pop(): 出栈, 移除栈顶元素, 无返回值; 例: s.pop();
- top(): 访问栈顶, 返回栈顶元素; 例: s.top();
- size(): 栈的大小, 返回栈中元素个数; 例: s.size();
- empty(): 栈是否为空, 为空则返回真; 例: s.empty().
2. 队列(queue)
队列(queue)是一种容器适配器,其存储特点是先进先出(FIFO).
队列的应用:
- 排队问题;
- 广度优先搜索; 等等.
基本操作: #include<queue>
- push() : 入队,在队尾添加元素; 例: q.push(x);
- pop(): 出队, 删除队列的第一个元素, 无返回值; 例: q.pop();
- front(): 访问队首, 返回第一个元素; 例: q.front();
- back(): 访问队尾, 返回最后一个元素; 例: q.back();
- size(): 队的大小, 返回队列中元素个数; 例: q.size();
- empty(): 队是否为空, 为空则返回真; 例: q.empty().