| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 362 人关注过本帖
标题:不知道这个问题的原因
只看楼主 加入收藏
黄真林
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-29
收藏
 问题点数:0 回复次数:4 
不知道这个问题的原因
在数据结构栈中 return   S->data[s->top--] ,我觉得只是返回了一个值,并未给该元素删除啊?不懂为什么这样做能删除栈栈中元素
搜索更多相关主题的帖子: 原因 结构 return 元素 
2012-11-29 23:45
Fisher~
Rank: 4
等 级:业余侠客
帖 子:93
专家分:222
注 册:2012-11-10
收藏
得分:0 
return   S->data[s->top--] 就是返回s->data[s->top]的值,这里有个自减运算所以返回值之后top减1;栈顶指针指向原来栈顶下面的那个元素,虽然没有出栈,但是已经访问不到了那个数据,那个数据已经是垃圾数据了所以相当于删除了一个元素
2012-11-30 16:58
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
其实数据还在,只不过top已经减了,如果top再次指向那个空间,那肯定是入栈,数据就会被覆盖


[fly]存在即是合理[/fly]
2012-11-30 17:39
黄真林
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-29
收藏
得分:0 
回复 2楼 Fisher~
但是我觉得没必要返回值了,只要指针减减就可以了啊,直接定义一个空函数不也是可以的吗
2012-12-02 22:24
黄真林
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-29
收藏
得分:0 
回复 3楼 azzbcc
那计算机内存里不就多了垃圾数据吗
2012-12-02 22:25
快速回复:不知道这个问题的原因
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025005 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved