前言
先讲一个笑话,怎样判断一个人是否是程序员?答:问他push的反义词是什么。回答pull的是普通人,回答pop的才是程序员,push和pop就是栈和队列中要用到的函数。
栈
栈是一种线性存储结构,元素遵循“先进后出”,并且只能在栈顶进行插入和删除,附上代码演示栈的用法,超详细。
#include<iostream>
#include<stack>//包含栈的头文件
using namespace std;
int main()
{
stack<int> s;//栈的定义
for(int i=0;i<10;i++)
{
s.push(i);//压栈
}
cout<<s.size()<<endl;//访问栈中元素个数
while(!s.empty())//判断栈是否为空
{
cout<<s.top()<<" ";//访问栈顶
s.pop();//弹栈,弹栈只是删除栈顶,并不返回栈顶,通常与top()连用
}
return 0;
}
队列
接下来再谈另一种线性存储结构–队列。他的元素遵循“先进先出”,队首删除,队尾插入,不多说,代码中演示队列的用法。
#include<iostream>
#include<queue>//包含队列的头文件
using namespace std;
int main()
{
queue<int> q;//队列的定义
for(int i=0;i<10;i++)
{
q.push(i);//入队
}
cout<<q.size()<<endl;//访问队列中元素个数
cout<<"队首:"<<q.front()<<endl;
cout<<"队尾:"<<q.back()<<endl;
while(!q.empty())//判断队列是否为空
{
cout<<q.front()<<" ";//访问队首
q.pop();//出队,删除队首,并不返回值,与栈的pop相似
}
return 0;
}