栈
1.栈的定义
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表
(1)插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)
(2)当表中没有元素时称为空栈
(3)栈为后进先出(Last In First Out)的线性表,简称LIFO
栈的修改时按后进先出的原则进行,每次删除(退栈)的总是当前栈中最新的元素。即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。
2.栈的基本运算
a.InitStack (S)
构造一个空栈S
b.StackEmpty (S)
判断栈是否为空栈
c.StackFull (S)
判断栈是否为满栈
d.Push (S,x)
进栈,若栈S不满,则将元素x插入S的栈顶。
e.Pop (S)
退栈。若栈S非空,则将S的栈顶元素删掉,并返回该元素。
f.StackTop (S)
取栈顶元素。若栈S非空,则返回栈顶元素,但不改变栈的状态。
队列
1.队列的定义
队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表
(1)允许删除的一端称为队头(Front)
(2)允许插入的一端称为队尾(Rear)
(3)当队列中没有元素时称为空队列
(4)队列也称为先进先出(First In First Out)的线性表,简称为FIFO表
队列的修改是依先进先出的原则进行的,新来的成员总是加入队尾,每次离开的成员总是在队列头上的(不允许中途离开)。
2.队列的基本逻辑运算
a.IninQueue (Q)
置空队。构造一个空队列Qb.QueueEmpty (Q)
判断队列是否为空
c.QueueFull (Q)
判断队列是否满
d.EnQueue (Q,x)
若队列Q非满,则将元素x插入Q的队尾。即入队
e.DeQueue (Q)
若队列Q非空,则删去Q的队头元素,并返回该元素。即出队
f.QueueFront (Q)
若队列Q非空,则返回队头元素,但不改变队列Q的状态。