鱼C论坛

 找回密码
 立即注册
查看: 523|回复: 7

课时24关于销毁一个栈的代码为什么先释放了栈底?

[复制链接]
最佳答案
1 
发表于 2018-2-10 18:18:26 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
栈不是一个后进先出的线性结构吗,小甲鱼老师在24课时的代码中销毁一个栈时for循环执行的是free(s->base),是否有问题?
最佳答案
916 
发表于 2018-2-10 18:20:07 | 显示全部楼层
上代码
最佳答案
1 
 楼主| 发表于 2018-2-10 18:22:35 | 显示全部楼层
代码在此
微信图片_20180210182214.png
最佳答案
1 
 楼主| 发表于 2018-2-10 18:29:17 | 显示全部楼层

你好看到了吗
最佳答案
916 
发表于 2018-2-10 19:16:07 | 显示全部楼层

从top 开始 和从base 开始都可以。
好比你要删除桌面上的文件,从第1个开删,和从最后1个开始删一个意思。哪个方便用哪个。

最佳答案
1 
 楼主| 发表于 2018-2-10 22:48:03 | 显示全部楼层
ba21 发表于 2018-2-10 19:16
从top 开始 和从base 开始都可以。
好比你要删除桌面上的文件,从第1个开删,和从最后1个开始删一个意思 ...

但是问老师老师坚持说无论如何都不可能在栈底进行操作,栈是限制在一段进行操作的线性结构,并说如果base在这指的是栈底指针的话程序就是错的
最佳答案
916 
发表于 2018-2-11 22:37:17 | 显示全部楼层
selantor 发表于 2018-2-10 22:48
但是问老师老师坚持说无论如何都不可能在栈底进行操作,栈是限制在一段进行操作的线性结构,并说如果base ...

我也不知道他有没有说过。这只是编程模拟  栈 的操作。是一个线性表,你要怎么操作就怎么操作。
最后 再说了 都要 销毁栈 了还管他从上还是从下。销毁什么都没了
最佳答案
1 
 楼主| 发表于 2018-2-14 20:22:45 | 显示全部楼层
请问这个问题从栈顶开始操作会不会更严谨一点?
从栈顶操作是将i改为栈顶下标然后循环改为i--然后free(s->top);s->top--;
这样改可以吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-19 08:19

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表