提问:对于线性表怎么给定一个值然后删除线性表里面有的这个值?
网友回答:
简单,这是链表中的删除操作,下面是程序:
一般链表都会用到结构体
所以下面这个函数,是一个链表删除其中一个节点的操作:
struct link *DeleteNode (struct link *head, int nodeData)
{
struct link *p=head,*q=head;
if (head=NULL) //这一步是判断从主函数里输入的链表是否为空链表
{
printf ("The list is empty!\n");
return (head);//若为空,则无法执行删除操作,则退出函数
}
while (nodeData!=p->data&&p->next!=NULL)//未找到且没有到表尾
{
q=p;
p=p->next;
}
if (nodeData==p->data)//若当前节点的节点值为nodeData,找到待删除节点
{
if (p=head)//若删除节点为头节点
{
head=p->next; //让头指针指向下一个节点
}
else//若找到的待删节点不是头节点
{
q->next=p->next;//让前一节点的指针域指向待删节点的下一节点
}
free(p);
}else{
printf ("This Node has not been found!\n");
}
return head;
}
还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ