栈
栈(stack)是一种后进先出 (last infirst out)的线性表. 只能在表的一端(栈顶)进行插入和删除运算的线性表。
栈(Stack):只允许在一端进行插入或删除操作的线性表。
栈顶(Top): 线性表允许进行插入和删除的那一端
栈底(Bottom): 固定的,不允许进行插入和删除操作的另一端。
空栈:不含任何元素的空表。
队列
队列是一种先进先出(FIFO)的线性表. 在表一端插入,在另一端删除。
循环队列的相关条件和公式:
1.队空条件:rearfront
2.队满条件:(rear+1) %QueueSIzefront,其中QueueSize为循环3.队列的最大长度
4.计算队列长度:(rear-front+QueueSize)%QueueSize
5.入队:(rear+1)%QueueSize
6.出队:(front+1)%QueueSize
- 当队列为空时,队列的头指针等于队列的尾指针;
- 当数组满员时,队列的头指针等于队列的尾指针;
顺序队列的存储状态不同,但是判断条件相同。为了对其进行区分,最简单的解决办法是:牺牲掉数组中的一个存储空间,判断数组满员的条件是:尾指针的下一个位置和头指针相遇,就说明数组满了,