栈 &队列

1、栈

1.1定义:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 ---来自百度百科

栈分为栈顶和栈尾。在进行操作时。只允许在从栈顶输入,从栈尾输出。

1.2特点:具有元素先进后出的特点。

1.3C++代码

函数库<stack>

定义:stack<type> m;

函数:

  1. push(): 向栈内压入一个成员;
  2. pop(): 从栈顶弹出一个成员;
  3. empty(): 如果栈为空返回true,否则返回false;
  4. top(): 返回栈顶,但不删除成员;
  5. 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;
}

猜你喜欢

转载自blog.csdn.net/qq_39129845/article/details/79659541