关于栈顶指针初值为-1和0的区别

关于栈顶指针初值为-1或者0 的区别(c语言)

栈顶指针:S.top
栈顶元素:S.data[S.top]

当栈顶指针的初始值设置 S.top=-1时

ps:
当栈为空时,栈顶指针指向data[-1],但栈底是data[0]

top
data{4}
data{3}
data{2}
data{1}
data{0}
data{-1}

进栈操作:栈不满时,栈顶指针先+1,在送值到栈顶元素

(通俗来讲:先给客人指路,客人才知道自己的座位在哪)

S.top=S.top+1;
S.data[S.top]=x;

或者:

S.data[++S.top]=x;

出栈操作:栈非空时,先取栈顶元素值,再将栈顶指针-1

S.data[S.top]=x;
S.top=S.top-1;

或者:

x=S.data[S.top--];

栈空条件:S.top==-1;
栈满条件:S.top==MaxSize-1;
栈长:S.top+1.

当栈顶指针的初始值设置 S.top=0时

ps:
当栈为空时,栈顶指针指向栈底data[0]

进栈操作:栈不满时,先送值到栈顶元素,栈顶指针再+1

通俗来讲:客人一进门,就看见有服务生(栈顶指针)在叫自己过去坐,当这位客人落座后,服务生将会去下一个座位旁继续等待客人。

S.data[S.top]=x;
S.top=S.top+1;

或者:

S.data[S.top++]=x;

出栈操作:栈非空时,先将栈顶指针-1,再取栈顶元素值(倘若先取值,再将栈顶指针-1,则会出错)

S.top=S.top-1;
x=S.data[S.top];

或者:

x=S.data[--S.top];

栈空条件:S.top==0;

栈满条件:S.top==MaxSize;
栈长:S.top.

初来乍到,请各位大佬多多关照,如有错误,欢迎指正!(淦!第一篇耗时一个小时呜呜呜~)

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值