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