标题:关于怎样销毁顺序栈【请求支援!支援!】
只看楼主
hzz063
Rank: 3Rank: 3
来 自:横县百合
等 级:论坛游侠
帖 子:80
专家分:114
注 册:2010-1-27
结帖率:100%
 问题点数:0 回复次数:2 
关于怎样销毁顺序栈【请求支援!支援!】
顺序栈(类似数组实现的)
我刚开始是用销毁链式栈(类似链表)的方法:
程序代码:
/////// 销毁栈  s /////////////
void destroystack(SQSTACK *s)
{
    if( s->top != s->base )
    while( --s->top != s->base )
    {
        free( s->top );
    }
    free( s->base ); 
    return;
}
我以为他会一个一个往下销毁,
可是到 free( s->top );就出错了。
后来我就改为了;
程序代码:
/////// 销毁栈  s /////////////
void destroystack(SQSTACK *s)
{

 
    free(s->base);
   
    return;
}

这样他貌似得了。运行没什么问题。
是不是这样就得了呢?我不太明白。
个人理解 是不是释放栈底,又因为他是连续储存的,所以一释放栈底他就把整个栈都释放完?
这样理解正确吗?谢了。


[ 本帖最后由 hzz063 于 2010-3-31 12:00 编辑 ]
搜索更多相关主题的帖子: 请求 支援 顺序 
2010-03-31 11:49
地狱无明火
Rank: 2
等 级:论坛游民
帖 子:62
专家分:71
注 册:2009-6-11
得分:0 
能看看全篇吗
不知道s->top和s->base是用作存放位置还是存放值
2010-03-31 14:00
hzz063
Rank: 3Rank: 3
来 自:横县百合
等 级:论坛游侠
帖 子:80
专家分:114
注 册:2010-1-27
得分:0 
是放地址,就是分别指向栈顶和栈底

一切只因为喜欢。
2010-03-31 14:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-301130-1-1.html




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

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