数据结构——第二章栈、队列:01栈

1.栈和队列是限定插入和删除只能在表的端点进行的线性表。栈是后进先出的数据结构,队列是先进先出的数据结构(栈相当于一个瓶子,向瓶内放的物品被压到瓶子底部,只有等上面的所有物品都出来了,下面的才能出来,这是先进后出;队列相当于一个隧道,火车向隧道内开不能回头,车头先进去也先出来,这是先进先出)。

2.栈的类型定义:

ADT Stack

{

  数据对象:D = {ai | ai ∈ ElemSet,i = 1, 2, ..., n, n >= 0}

  数据关系:R1 = {<ai-1, ai ∈ D,i=2, ..., n>}(约定an端为栈顶,a1端为栈底)

  基本操作:

  ①InitStack(&S)——初始化栈

  ②Destroy(&S)——销毁栈

  ③StackLength(S)——求栈中元素个数

  ④StackEmpty(S)——判断栈是否为空

  ⑤GetTop(S, &e)——返回栈底元素

  ⑥ClearStack(&S)——清空栈

  ⑦Push(&S, e)——进栈

  ⑧Pop(&S, &e)——出栈

  ⑨StackTravers(S, visit())——对栈进行遍历

} ADT Stack

3.栈的应用举例:

(1)数制转换:

(2)括号匹配检验:

(3)行编辑程序问题:

(4)表达式求值:

(5)实现递归操作:

4.

5.

6.

7.

8.

9.

10.

猜你喜欢

转载自www.cnblogs.com/hou36/p/9881564.html