- 栈 - 定义:限定只能在表尾插入或删除的线性表 - 栈的抽象数据类型 ADT Stack { D = {a[i] | a[i] is ElemSet, i = [0, n], n >= 0} R = {<a[i-1], a[i]> | a[i-1], a[i] in D, i = [1, n]} P InitStack(&S) DestroyStack(&S) ClearStack(&S) StackEmpty(S) StackLength(S) GetTop(S, &e) Push(&S, e) Pop(&S, &e) StackTraverse(S, visit()) }ADT Stack - 栈的表示和实现 - 顺序栈 - 链式栈 - 栈与递归 - 递归就是通过栈实现的 - 队列 - 定义:限定只能在一段插入,另一端删除的线性表 - 队列的抽象数据类型 ADT Queue{ D = {a[i] | a[i] is ElemSet, i = [0, n], n >= 0} R = {<a[i-1], a[i]> | a[i-1], a[i] in D, i = [1, n]} P InitQueue(&Q) DestroyQueue(&Q) ClearQueue(&Q) QueueEmpty(Q) QueueLength(Q) GetHead(Q, &e) EnQueue(&Q, e) DeQueue(&Q, &e) QueueTraverse(Q, visit()) }ADT Queue - 队列的表示和实现 - 链队列 - 循环队列(顺序实现)