关于怎样销毁顺序栈【请求支援!支援!】
顺序栈(类似数组实现的)我刚开始是用销毁链式栈(类似链表)的方法:
程序代码://///// 销毁栈 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 编辑 ]








