学过数据结构的栈和队列这一章的小伙伴们都知道,我们在真正用代码实现栈和队列的时候,是非常繁琐而且耗时的,如果我们用这种方式C++栈和队列来实现的话,就简便了很多,所以可一定要会啊。
目录
C++ Stacks(堆栈):
堆栈是一个容器类的改编,实现了一个先进后出(FILO)的数据结构。
使用该容器时需要包含头文件 #include<stack>
操作:
在栈顶增加元素(即将元素压入栈)
push();
第一种方式:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int>s;//压入栈的元素都为int型
s.push(0);//将0压入栈
s.push(1);//将1压入栈
s.push(2);//将2压入栈
s.push(3);//将3压入栈
}
//此时栈中元素从上到下依次为3,2,1,0
第二种方式:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int>s;//压入栈的元素都为int型
for(int i=0;i<4;i++)
{
s.push(i);//将0,1,2,3依次压入栈
}
}
//此时栈中元素从上到下依次为3,2,1,0
返回栈中元素数目
size();
判断堆栈是否为空
empty(); //是空的话返回1,非空的话返回0
返回栈顶的元素
top();
移除栈顶的元素
pop();
堆栈相等意味着堆栈有相同的元素并有着相同的顺序。
C++ queue:
C++队列Queue是一种容器适配器,它给予程序员一种先进先出的数据结构。
使用这个要加头文件 #include<queue>
操作:
在队尾添加元素
push();
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<char>q;//队列中的元素都为char型
q.push('a');//将字符a添加到队尾
q.push('b');//将字符b添加到队尾
q.push('c');//将字符c添加到队尾
q.push('d');//将字符d添加到队尾
return 0;
}
返回队列大小
size();
判断队列是否为空
empty(); //是空的话返回1,非空的话返回0
返回队尾元素
back();
返回队头元素
front();
队头移除元素
pop();
stack与queue都不提供遍历功能。