目录

1. 顺序栈操作

2. 共享栈 


1. 顺序栈操作

【2】2 顺序栈 基本操作

 

【2】2 顺序栈 基本操作

 

 

【2】2 顺序栈 基本操作

 

【2】2 顺序栈 基本操作

 

【2】2 顺序栈 基本操作

 

上面的操作都是基于:  初始化栈的时候将 top 指针指向了 -1,有数据时指向栈顶元素。

 

 

如果初始化的时候将 top 指针指向 0 位置,这种方式是将 top 指针指向下一个我们可以插入元素的位置。

【2】2 顺序栈 基本操作

 

在这种情况下,

进行进栈操作的时候,代码应该为 S.data[S.top++]=x;
进行出栈操作的时候,代码应该为 x=S.data[--S.top];
栈满条件: top==MaxSzie;

==>  所以一定要审题清晰!!!

 

 

注意: 怎么销毁一个顺序栈呢?

首先需要在逻辑上把这个栈清空,然后回收栈所占用的内存空间。逻辑上清空一个栈,只需要将 top 指针指向初始化的那个位置。在这些代码中,使用的是变量声明的方式来分配相应的内存空间,并没有使用 malloc 函数,所以给栈分配的内存空间会在函数结束后由系统自动回收。

 

 

2. 共享栈 

两个栈共享同一片内存空间。

【2】2 顺序栈 基本操作

栈满条件: top0+1=top1;

 

 

相关文章: