(作者:饶家俊,撰写时间:2020年4月28号)
首先我们就先来看一下堆栈的定义。
堆栈就是多个东西叠放在一起,我们要拿走里面的一个东西,那么我们就要从最上面开始取,要取下面的东西,就要把上面的东西拿走,才可以拿下面的东西。那么就是先放下去的东西,是最后取走的,后放下去的东西是最先取走的,这就是堆栈的定义。
堆栈又是一种特殊的线性表,因为它满足线性表的元素与元素之间的逻辑关系
堆栈简称为栈,是限定只能在表的一端进行插入和删除操作的线性表。
在表中允许插入和删除的一端称作“栈顶”,另一端称作“栈底”。通常将元素插入栈顶的操作作为“入栈”(进栈或者压栈),称删除栈顶元素的操作作为“出栈”。
存储结构分两种,一种是顺序栈 – 采用顺序结构存储,还有一种就是链栈- 采用链式结构存储。
当栈满的时候为:top = Maxsize-1。
当栈空的时候为:top= -1。
当栈满的时候就不要在入栈了,所以就可以进行判断一下。
当栈空的时候就不能在弹出元素了,也要进行判断一下。
队列分顺序队列和循环队列,下面就是队列的定义。
队列简称为队,是限定只能在表的一端作插入运算,在另一端作删除运算的线性表。
在表中,允许插入的一端为队尾,允许删除的一端为队首。通常将元素插入队尾称作入列,删除队首元素的操作为出队列。
当顺序队列要入队的时候,是按顺序从队尾来插入的,出队就是从队首来排除。
队空:front==rear
队满rear==Maxsize-1
当rear==Maxsize-1时,队列为满,如果再加入新元素,就或产生“溢出”。
但是这种“溢出”并不是真正的溢出,在数组的前端还可能有空的位置,所以是一种假溢出。