1.2花的颁序存储结构 ■栈的顺序存储结构实际上是一维数组结构。 这种栈又称为—顺序栈。 ■栈的操作只能在一端进行;即栈顶位置随进 栈和出栈而变化。 顺序栈的C语言描述为: #define maXsize 200 int stackMAXSIZE: int top =-1 2021年2月24日
2021年2月24日 6 1.2 栈的顺序存储结构 ◼ 栈的顺序存储结构实际上是一维数组结构。 ◼ 这种栈又称为——顺序栈。 ◼ 栈的操作只能在一端进行;即栈顶位置随进 栈和出栈而变化。 ◼ 顺序栈的C语言描述为: #define MAXSIZE 200 int stack[MAXSIZE]; int top = -1;
栈顶指针 ■栈顶指针:在栈操作过程中,有一个专 门的栈指针(习惯上称它为TOP),指出 栈顶元素所在的位置 ■栈空的条件:top=-1 ■栈满的条件:top=MAXS|ZE-1 2021年2月24日
2021年2月24日 7 栈顶指针 ◼ 栈顶指针:在栈操作过程中,有一个专 门的栈指针(习惯上称它为TOP),指出 栈顶元素所在的位置。 ◼ 栈空的条件: top = -1 ◼ 栈满的条件: top = MAXSIZE-1
1.3栈操作举例 TOP a1 a 2 a MAXSIZE 栈底 栈顶 2.AB C top=-1(空栈) top-3(A、B、C进栈) 3.AB 4.AIBICIDEF top=2 (C出栈) top= MAXSIZE-1/(钱满) 2021年2月24日
2021年2月24日 8 a1 a2 …… an 栈底 栈顶 MAXSIZE TOP 1. top = -1 2. A B C (空栈) top=3 (A、B、C进栈) 3. A B top=2 (C出栈) 4. A B C D E F top=MAXSIZE-1 (栈满) 1.3 栈操作举例
栈溢出 栈上溢:栈空间是有限的,若栈已满, 在进行入栈操作时,就要产生上溢。 栈下溢:若栈空,再要执行出栈操作, 则会发生下溢。 2021年2月24日
2021年2月24日 9 栈上溢:栈空间是有限的,若栈已满, 在进行入栈操作时,就要产生上溢。 栈下溢:若栈空,再要执行出栈操作, 则会发生下溢。 栈溢出
1.4花的基本运募 ■进栈操作(插入)Push( Stack,x) 出栈操作(删除)Pop( Stack) 取栈顶元素Getp( Stack) 置栈为空 Setnull( stack 判定栈是否为空 Empty( Stack) 2021年2月24日
2021年2月24日 10 ◼ 进栈操作(插入) Push(Stack,x) ◼ 出栈操作(删除)Pop(Stack) ◼ 取栈顶元素 Gettop(Stack) ◼ 置栈为空 Setnull(Stack) ◼ 判定栈是否为空 Empty(Stack) 1.4 栈的基本运算