(线性表)
一、栈(Stack):
所有的 插入和 删除都限定在表的一端进行。
栈顶:允许插入和删除的一端
栈底:不允许插入和删除的一端
空栈:栈没有元素时
修改原则:先进先出
指针top
指向栈顶
指针bottom
指向栈底
栈顶指针top
反映了栈的状态不断变化
- stack的基本运算:入栈、退栈、读栈顶元素
- 带链的栈:采用链式存储结构表示,把栈组织成一个单链表
二、队列(queue):
指允许在一端进行插入,而在另一端进行删除的线性表
队头(排头):允许删除的一端
队尾:允许插入的一端
修改原则:先进后出
queue的运算:
队头指针(排头指针)front
总是指向队头元素的前一个位置
队尾指针rear
总是指向队尾元素
front
和rear
共同反映了队列中元素的动态变化
循环队列:
循环队列的存储空间一般用
Q(1:m)
表示
- 队列的循环存储结构一般采用循环队列的形式
- 循环队列:队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环形空间。
- 循环队列的初始状态为空,即
front = rear = m
当front = rear
时,不能确定是队满还是队空,于是,增加一个标志s
。
当s = 0,队列为空;
当s = 1且front = rear,队满
- 带链的队列:采用链式存储结构表示,用一个单链表来表示队列,队列的每一个元素对应链表中的一个节点。
三、一般线性表(略)