栈的存储空间:1—m,top=1,不就是在栈顶吗,插入一个,top=2,这样理解哪里不对
答案:2 悬赏:30
解决时间 2021-01-07 07:50
- 提问者网友:我没有何以琛的痴心不悔
- 2021-01-07 04:57
栈的存储空间:1—m,top=1,不就是在栈顶吗,插入一个,top=2,这样理解哪里不对
最佳答案
- 二级知识专家网友:毛毛
- 2021-01-07 06:33
栈是先进后出的嘛,栈顶一开始是m+1,那么入站一个元素后,栈顶将变成m,相当于减1。如果你不好想象,我举个例子。如果你把一个杯子打上刻度,杯口是1,杯底是10,杯子的大小刚好能放进一个橘子,如果我们认为一开始杯底是栈顶,也就是10,那么放一个橘子之后,杯底就变成9了,因为你不能再把东西放到比9大的地方,同理,8、7、6,如果你往外拿一个橘子,也是先拿上面的,这就是先进后出,后进先出。追答当杯子放满后,相当于栈顶为1,如果你再放橘子,就会溢出。追问
该怎么理解那个初始状态追答初始状态就是栈刚建好,还没放任何数据,即空栈的意思嘛。进栈是top=top-1,谁告诉你是加一的?你看清楚别人的答案解析嘛。追问栈顶到栈底,不是1—m吗,
书上写top增1追答这是两种管理栈的方式,书上的这种是地址小的是栈底,上面的是地址大的为栈底,怎么整还不是写的人决定。你看上面那个的初始状态是m+1,明显就是大的为底了嘛。假如你自己定义一个长度为10的数组a,一开始不放任何数据,这时候来了一个数据,你放在a[9]的地方,再来一个数据,你放在a[8]的地方,你说这个栈压栈的时候top是加一还是减一?追问画个图,太抽象了
该怎么理解那个初始状态追答初始状态就是栈刚建好,还没放任何数据,即空栈的意思嘛。进栈是top=top-1,谁告诉你是加一的?你看清楚别人的答案解析嘛。追问栈顶到栈底,不是1—m吗,
书上写top增1追答这是两种管理栈的方式,书上的这种是地址小的是栈底,上面的是地址大的为栈底,怎么整还不是写的人决定。你看上面那个的初始状态是m+1,明显就是大的为底了嘛。假如你自己定义一个长度为10的数组a,一开始不放任何数据,这时候来了一个数据,你放在a[9]的地方,再来一个数据,你放在a[8]的地方,你说这个栈压栈的时候top是加一还是减一?追问画个图,太抽象了
全部回答
- 1楼网友:千杯敬自由
- 2021-01-07 06:41
别忘了栈空的时候为:top=m+1,
一个元素的时候top=m
2个元素的时候top=m-1
最后插入一个,top=0,插入一个top数值变小,最后可能溢出
一个元素的时候top=m
2个元素的时候top=m-1
最后插入一个,top=0,插入一个top数值变小,最后可能溢出
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯