int DestroyStack(stack &s)
{int* p;//假设栈的里面的数据为int.栈低和栈顶指针为int*类型
--s.top;//s.top总是指向栈的最后一个数据的上一位,--s.top就是使s.top指向实际所存储的数据位置处
while(s.base!=s.top)
{p=s.top;
s.top--;
free(p);
}//这个while循环结束后p指向了栈底的前一个位置。所以我认为就是所存储的第一个数据的位置还木有被free。
free(s.top);//等价于free(s.base);
return 0;
}
//不知道写的对不。==
还有清空栈的函数==书上写的是下面的这个
int ClearStack(stack &s)
{
s.top=s.base;
s.stacksize=StackInitSize;
return 0;
}//可是我觉得清空一个栈,不能只是将一个栈的头指针指向栈低指针,假设栈所开辟了一个数组来存储数据。那这个数组所存储的数据是不是还要清空呢??
跃然一笑
天涯尽头无女友
凤凰求蛊
随时随地看视频慕课网APP