栈和队列
栈:栈(stack)又名堆栈,它是一种运算受限的线性表。其限
制是仅允许在表的一端进行插入和删除运算。这一端被称为
栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又
称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上
面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈
或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的
栈顶元素。
队列:队列(queue)的的性质刚好与栈相反,功能类似,但队列是
先进先出。
可理解为“栈:先进后出,队列:先进先出”。
代码如下:
#include <iostream>
#include <stack>//栈所需头文件
#include <queue>//队列所需头文件
using namespace std;
int main()
{
stack<int>sta;//栈的定义
queue<int>que;//队列的定义
for(int i=1;i<=5;i++)//存入数据
{
int n;
cin>>n;
sta.push(n);//入栈
que.push(n);//入队列
}
while(!sta.empty())//检查是否为空
{
cout<<sta.top()<<endl;//查询栈顶元素
sta.pop();//元素出栈
}
while(!que.empty())
{
cout<<que.front()<<endl;//查询队列顶端元素
que.pop();//元素出队列
}
/*清空栈 or 队列*/
while(!que.empty()) que.pop();
while(!sta.empty()) sta.pop();
return 0;
}