编写算法函数linklist delallx(linklist head, int x),删除带头结点单链表head中所有值为x的结点。
*/
linklist delallx(linklist head,int x)
{
linklist p=head->next,q=NULL;
while(p!=NULL)
{
while(p->info!=x){q=p;p=p->next;} //查找x
if(q==NULL) //要删除的x就在第一个
{
head->next=p->next;
}
else
{
q->next=p->next;
}
p=p->next;
}
free(p); //释放p结点
return head;
}
int main()
{ datatype x;
linklist head;
head=creatbyqueue(); /*尾插入法建立带头结点的单链表*/
print(head);
printf("请输入要删除的值:");
scanf("%d",&x);
head=delallx(head,x);
print(head);
delList(head);
return 0;
}