文章目录
一、栈和stack
栈是基本数据结构之一,特点是:“先进后出”。
头文件:#include< stack >
栈的有关操作:
stack< Type >a; //定义栈,Type为数据类型,例如int、float、char
s.push(x); //把x放到栈顶
s.top(); //返回栈顶的元素,但不会删除
s.pop(); //删除栈顶的元素,但不会返回,在出栈时需要进行两步操作
//即先top()获得栈顶元素,再pop()删除栈顶元素
s.size(); //返回栈中元素的个数
s.empty(); //检查栈是否为空,如果为空,返回true,否则返回false
简单实现一下:
#include<bits/stdc++.h>
#include<stack> //可以不写
using namespace std;
int main()
{
stack<int>s;
int i;
for(i=1;i<=6;i++)
s.push(i);
cout<<"栈中元素共"<<s.size()<<"个"<<endl;
cout<<"栈顶元素为"<<s.top()<<endl;
s.pop();
cout<<"栈中目前元素为:";
while(!s.empty()){
s.top();
cout<<s.top()<<" ";
s.pop();
}
return 0
}
实现结果:
二、队列和queue
队列是基本的数据结构之一,特点是“先进先出”。
头文件:#include< queue >
队列的有关操作:
queue< Type >q; //定义栈,Type为数据类型,例如int、float、char
q.push(x); //把x放进队列
q.front(); //返回队首元素,但不会删除
q.pop(); //删除队首元素
q.back(); //返回队尾元素
q.size(); //返回元素个数
q.empty(); //检查队列是否为空
简单实现:
#include<bits/stdc++.h>
#include<queue> //可以不写
using namespace std;
int main(){
queue<int>q;
for(int i=0;i<=6;i++)
q.push(i);
cout<<"队列中元素个数为:"<<q.size()<<endl;
cout<<"队首元素是:"<<q.front()<<endl;
q.pop(); //删除队首元素
cout<<"队尾元素是:"<<q.back()<<endl;
while(!q.empty()){ //若队列不为空,返回队首元素
cout<<q.front()<<" ";
q.pop(); //删除队首元素
}
return 0;
}
实现结果: