销毁单链表
单链表被构造使用完后由于其结点均为动态分配的内存空间所以必须要销毁以释放空间否则会造成申请的内存不能释放单链表的销毁操作是创建操作的逆运算由于要修改单链表的头指针的指针变量所以要将头指针地址传给该函数首先判断要销毁的表是否存在然后在单链表存在的情况下释放该单链表的所有结点(包括头结点)具体算法如下
void Destroy_LinkList(LinkList *Headdress)
{ /*销毁单链表入口参数单链表头指针的地址出口参数无*/
LinkList pq;
if ( ! (*Headdress)) /*判断单链表是否存在不存在则直接返回*/
return;
p=*Headdress;
while ( p!=NULL) /*释放单链表的所有结点*/
{
q=p;
p=p>next;
free(q);
} /*while */
*Headdress=NULL; /*将头指针变为零表示单链表不存在*/
}
设调用函数为主函数主函数对创建函数和销毁函数的调用如下
main( )
{
LinkList H;
H =Creat_LinkList();
……
Destroy_LinkList(&H);
}
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []