数据结构 关于栈top指针位置问题

在严老师的数据结构中讲到,非空栈中的栈顶指针始终在站定元素的下一个位置,也就是空栈的时候,top==base,但是有看到对栈判空时有top==-1,也就是说这里的空栈是top指针在base指针上一个位置。。。这是怎么回事,本人初学者,望高手指点~~~
严老师书中写的是top==base即为空栈,那不就是top==0吗?

1、首先创建顺序栈结构体类型,定义数据类型与栈大小,如图。

2、然后把栈标设置为-1代表空栈就完成初始化顺序栈了,如图。

3、初始玩栈就可以对栈元素进行入栈了,这样就完成顺序栈创建, 如图。

4、然后链栈需要先创建节点,如图。

5、然后在设置链栈的结构,完成链栈的节点和结构创建就可以初始化链栈了,如图。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-08
1、空栈的时候top=base-1,就是栈外了。
2、入栈的时候先top++,然后将元素push入栈,所以“非空栈中的栈顶指针始终在栈顶元素的下一个位置”是正确的,但更应该理解为将要入栈位置的前一个位置(目前的栈顶元素位置)。
3、栈空判断top==-1,这样的判断没见过。有也应该是((top-base)==-1),或者top<=(base-1)
但更一般的情况是用base是否为空来判断,而不是top本回答被提问者采纳
第2个回答  2011-07-08
因为习惯用下标法来表示,也就像数组一样,如果top = 0 ,那么则表示的是一个元素,所以空栈则top = -1.
第3个回答  2011-07-08
所以s-
相似回答