栈和队列的定义与使用

定义

栈(Stack):只允许在一端进行插入或删除操作的线性表。

队列(Queue):只允许在表的一端进行插入,而在表的另一端进行删除的线性表。

栈的基本操作:

s.empty() 若栈为空返回true,否则返回false
s.size() 返回栈中元素的个数
s.pop() 弹出栈顶元素但不返回其值
s.top() 若栈s非空,返回栈顶的元素
s.push() 在栈顶压入新元素

队列的基本操作:

q.empty() 若队列为空返回true,否则返回false
q.size() 返回队列中元素的个数
q.pop() 弹出队列首元素但不返回其值
q.front() 返回队首元素的值,但不删除该元素
q.push() 在队尾压入新元素
q.back() 返回队列尾元素的值,但不删除该元素

使用

引入头文件:

#include<stack>

#include<queue>

定义栈:stack<int> s;

定义队列:queue<int> q;

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>  
#include<stack>
using namespace std;
int main()
{
stack<int>s;//定义一个栈
for (int i = 0; i < 10; i++)
s.push(i);
while (!s.empty())
{
cout << s.top() << endl;
s.pop();
}
cout << "栈内的元素的个数为:" << s.size() << endl;
return 0;
}

更多参考

Author: wnxy
Link: https://wnxy.github.io/2020/03/26/Definition-and-use-of-stacks-and-queues/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.