栈和队列的概念及基本操作
一、栈
1、栈的定义:
对于由n个数据元素构成的一个线性序列,如果只允许在其指定的一端插入或删除一个数据元素,那么这种逻辑结构称为栈(Stack)或堆栈。
栈是一种”先进后出“(First In Last Out)或“后进先出”的数据结构。
2、栈的操作(stack):
头文件:
#include <stack>
基本操作:
push(x) //将x加入栈中,即入栈操作
pop() //出栈操作(删除栈顶),只是出栈,没有返回值
top() //返回第一个元素(栈顶元素)
size() //返回栈中的元素个数
empty() //当栈为空时,返回 true
3、 使用时:
定义一个栈:
stack< int > s;
使用函数时:
s. + 函数;
例如:入栈操作 //其他函数同理
s.push(x); //x为入栈的数字
二、队列:
1、 队列的定义:
对于由N个数据元素构成的一个线性序列,如果在其固定的一端只允许插入数据元素,且在另一端只允许删除数据元素,这种逻辑结构称为队列(Queue)
队列是一种“先进先出”的数据结构(First In First Out)。
2、队列的操作:
头文件:
#include <queue>
基本操作:
push(x) //将x压入队列的末端
pop() //弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值
front() //返回第一个元素(队顶元素)
back() //返回最后被压入的元素(队尾元素)
empty() //当队列为空时,返回true
size() //返回队列的长度 //当栈为空时,返回 true
3、使用时:
定义一个队列:
queue< int > s;
使用函数时与栈类似:
s . + 函数;
例如:入栈操作: //其他函数同理
s.push(x); //x为入栈数字