/删除函数
struct record*delet(struct record *head)
{
struct record *p1,*p2;
char number[10];
printf("\t请输入要删除用户的序号number:");
scanf("%s",&number);rewind(stdin);
if(head==NULL)
{
printf("\n\t出错了,通讯录无该用户信息记录!!\n");
return(head);
}
p1=head;
while(strcmp(number,p1->number)!=0&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(strcmp(number,p1->number)==0)
{
if(p1==head)
{
head=p1->next;
printf("\t删除成功,请继续选择功能键!\n\n");
}
else
{
p2=p1->next;
printf("\t已删除的用户的序号为:%s\n",number);
printf("\t删除成功,请继续选择功能键!\n\n");
}
n=n-1;
}
else printf("\t通讯录无该用户的信息记录!\n ");
return(head);
}
首先输入查询的数,head==NULL时不存在若存在,
p1指向head;若number和p1->number不同 ,则strcmp返回0,
p2指向p1; p1指向p1的next;遍历下一个
若number和p1->number相同 ,则strcmp返回0,
情况1 :删除的是头结点 head指向p1->next;完成删除
情况2:删除普通节点: p2指向p1->next;
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m