栈
栈是只能在某一端插入和删除的特殊线性表。
用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。
栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO表)。
栈的基本操作如下:
include<stack>//头文件 stack<数据类型>变量名//定义栈 如:stack<int>a; a.push(变量)//进栈 a.top()//返回栈顶元素 a,pop()//出栈 a.size()//返回栈中元素个数 a.empty()//如果栈为空返回true,否则返回false
队列
队列是限定在一端进行插入,另一端进行删除特殊线性表。就像排队买东西,排在前面的人买完东西后离开队伍(删除),而后来的人总是排在队伍未尾(插入)。通常把队列的删除和插入分别称为出队和入队。允许出队的一端称为队头,允许入队的一端称为队尾。所有需要进队的数据项,只能从队尾进入,队列中的数据项只能从队头离去。由于总是先入队的元素先出队(先排队的人先买完东西),这种表也称为先进先出(FIFO)表。
队列基本操作如下:
#include<queue>//头文件 queue<数据类型>变量名//定义队列 如:queue<int>a a.empty()//如果队列为空返回true,否则返回false a.size()//返回队列中元素的个数 a.pop()// 删除队列首元素但不返回其值 a.front()//返回队首元素的值,但不删除该元素 a.push()//在队尾压入新元素 a.back()//返回队列尾元素的值,但不删除该元素