栈定义:栈是限定只能在表的一端进行插入和删除的线性表。在表中允许插入和删除的一端叫做栈顶(top);表的另一端则叫做栈底(bottom)。栈又称后进先出(Last In First Out,简写为LIFO)表。
•栈满:栈内元素个数为MaxSize时。top=MaxSize-1
•栈空:栈内无元素。top=-1
•上溢:当栈满时,还要进栈。
•下溢:当栈空时,还要出栈。
队列定义:队列是一种特殊的线性表。在队列中,仅允许一端进行插入,在另一端进行删除。允许插入的一端叫做队尾(rear);允许删除的另一端叫做队头(front)。队列又称先进先出(First in First Out,简写为FIFO)表。
栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了。
使用标准库的栈和队列时,先包含相关的头文件
定义栈如下:
stack<int>stk;
定义队列如下:
queue<int>q;
栈提供了如下的操作
-
s.empty() 如果栈为空返回true,否则返回false
-
s.size() 返回栈中元素的个数
-
s.pop() 删除栈顶元素但不返回其值
-
s.top() 返回栈顶的元素,但不删除该元素
-
s.push() 在栈顶压入新元素
队列提供了下面的操作
-
q.empty() 如果队列为空返回true,否则返回false
-
q.size() 返回队列中元素的个数
-
q.pop() 删除队列首元素但不返回其值
-
q.front() 返回队首元素的值,但不删除该元素
-
q.push() 在队尾压入新元素
-
q.back() 返回队列尾元素的值,但不删除该元素