在C++标准库(STL)中有栈和队列的类模板,因此可以直接使用
1、栈(stack):使用栈之前,要先包含头文件 : #include<stack>
stack.push(elem); //往栈头添加元素
stack.pop(); //从栈头移除第一个元素
stack.top(); //返回栈顶元素
stack.empty(); //判断堆栈是否为空,栈空返回true,栈非空返回false
stack.size(); //返回堆栈的大小
例:
#include <iostream>
#include <stack>
using namespace std;
int main(){
stack<int> stack;
int num;
cout<<"入栈:";
for(int i = 1;i<10;i++){
cout<<i<<" ";
stack.push(i);
}
stack.empty()?cout<<endl<<"当前栈空":cout<<endl<<"当前栈非空";
cout<<endl<<"栈内元素数:"<<stack.size()<<endl;
cout<<"出栈:";
while(!stack.empty())
{
cout<<stack.top()<<" ";
stack.pop();
}
stack.empty()?cout<<endl<<"当前栈空":cout<<endl<<"当前栈非空";
return 0;
}
2、队列(queue):使用队列,要先包含头文件 : #include<queue>
queue.push(elem) //把元素压入队列尾部
queue.pop() //删除队首元素,但不返回
queue.front() //返回队首元素,但不删除
queue.back() //返回队尾元素,但不删除
queue.size() //返回队列中元素的个数
queue.empty() //检查队列是否为空,如果为空返回true,否则返回false
例:
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<int> queue;
int num;
cout<<"入队:";
for(int i = 1;i<10;i++){
queue.push(i);
cout<<queue.back()<<" ";
}
queue.empty()?cout<<endl<<"当前队列空":cout<<endl<<"当前队列非空";
cout<<endl<<"队列内元素数:"<<queue.size()<<endl;
cout<<"出队:";
while(!queue.empty())
{
cout<<queue.front()<<" ";
queue.pop();
}
queue.empty()?cout<<endl<<"当前队列空":cout<<endl<<"当前队列非空";
return 0;
}