求救 如何才算是销毁一个线性表?

来源:百度知道 编辑:UC知道 时间:2024/06/07 00:50:13
如何才算是销毁一个线性表呢??? 是否能将函数写一下啊 是不是所有结点全部free呢?

晕,又问一遍~~~

不可以直接释放头结点的,必须所有的结点全部释放掉,最后释放头结点
如果直接将头结点置空,会导致其它结点元素所占空间不被有效释放,产生内存泄露

一个比较规正的清空线性表的代码如下:
void DestroyList(LinkList *L)//初始条件:线性表L已存在。 操作结果:销毁线性表L。
{
LNode Head, P;
if(*L)//若线性表L已存在
{
Head = *L;
P = Head->next;
while(!P) //把链表中除头结点外的所有结点释放
{
free(Head);
Head = P;
P = Head->next;
}
free(Head); //释放头结点
}
}

对,将所有节点free