3.1.2栈的顺序存储实现

3.1.2栈的顺序存储实现_第1张图片

 (1)初始化一个顺序栈/栈的判空操作

与顺序表的声明类似

就是要加上一个栈顶指针top

然后把别名SqList改为SqStack

3.1.2栈的顺序存储实现_第2张图片

 3.1.2栈的顺序存储实现_第3张图片

 我们发现top指针的大小就是数组下标。

当空栈时,top指针为-1.

3.1.2栈的顺序存储实现_第4张图片

 (2)进栈操作

ep:插入一个元素a。

3.1.2栈的顺序存储实现_第5张图片

 课本种给出了一种更加简洁的写法。

3.1.2栈的顺序存储实现_第6张图片

 ++top先让top+1赋值给top。

再使用top的值。

写反的后果:

 

(3)出栈(删除元素)

3.1.2栈的顺序存储实现_第7张图片

 3.1.2栈的顺序存储实现_第8张图片

 3.1.2栈的顺序存储实现_第9张图片

 

顺序栈的缺点:存储空间确定,不可增加。

共享栈:两个栈共享一片空间。两个栈从两边向中间增长。

3.1.2栈的顺序存储实现_第10张图片

判定栈满的条件:

S.top0+1=S.top1

 3.1.2栈的顺序存储实现_第11张图片

 

你可能感兴趣的:(考研英语基础,数据结构)