该算法对吗?
LinkList MakeEmpty(LinkList L)//初始条件:线性表L已存在。 操作结果:将线性表L重置为空表。
{
LNode Head, P;
Head = *L;
P = Head->next;
while(!P)//把链表中除头结点外的所有结点释放
{
free(Head);
Head = P;
P = Head->next;
}
return (Head); //返回头结点
}
这样算对吗?我觉得不太正确,哪位给点意见
LinkList MakeEmpty(LinkList L)//初始条件:线性表L已存在。 操作结果:将线性表L重置为空表。
{
LNode Head, P;
Head = *L;
P = Head->next;
while(!P)//把链表中除头结点外的所有结点释放
{
free(Head);
Head = P;
P = Head->next;
}
return (Head); //返回头结点
}
这样算对吗?我觉得不太正确,哪位给点意见
2006-09-02 09:23
LinkList MakeEmpty(LinkList L)
{
LNode *Head=L,*P,*Q=NULL;
P = Head->next;
while(P)
{
Q=P->next;
free(P);
P=Q;
}
return (Head);
}
p是节点,又不是指针,类型不搭配.
而且您那个程序是把前面的节点都删除,只留下最后一个节点。

2006-09-02 12:32
加上head->next=NULL;应该会好点.
这样应该也可以.
LinkList MakeEmpty(LinkList L)
{
LNode *Head=L,*P;
P = Head->next;
while(P!=NULL)
{
head->next=p->next;
free(P);
P=head->next;
}
return (Head);
}

2006-09-02 23:57
2006-09-02 23:59
2006-09-05 09:10