1、栈
1.1定义:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 ---来自百度百科
栈分为栈顶和栈尾。在进行操作时。只允许在从栈顶输入,从栈尾输出。
1.2特点:具有元素先进后出的特点。
1.3C++代码
函数库<stack>
定义:stack<type> m;
函数:
- push(): 向栈内压入一个成员;
- pop(): 从栈顶弹出一个成员;
- empty(): 如果栈为空返回true,否则返回false;
- top(): 返回栈顶,但不删除成员;
- size(): 返回栈内元素的大小;
2、队列
2.1定义:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 ---来自百度百科
队列与栈不同,队列的输入和输出都在一端,被称为对头。
2.2 特点:队列具有先进先出的特点。
1.3C++函数库<queue>
queue 的基本操作举例如下:
queue入队,如例:q.push(x); 将x 接到队列的末端。
queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
判断queue队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
-----转自https://blog.csdn.net/cindywry/article/details/51919282
/定义:queue<...> q;
//数据读取
/*
q.pop() //弹出栈顶元素
q.push(...) //压入元素
q.front() //取栈顶元素
//栈信息
q.empty() //判断是否为空
q.size() //栈内元素数量
*/
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
int main()
{
return 0;
}