单链表删除环节求指点
void delpeople(struct Phone **people){
struct Phone *temp;
char ch;
printf("请输入要删除的联系人:");
scanf("%s", ch);
fflush(stdin);
while(*people != NULL)
{
temp = *people;
*people = (*people)->next;
if(strcmp(ch, temp->name) == 0)
{
free(temp);
break;
}
}
}
采用的是头插法,为什么不能删除第一个输入的节点,一释放整个内存全部丢失,打印为空 为什么同一个问题发这么多个帖子!!有灌水嫌疑!!
void delpeople(struct Phone **people)
{
struct Phone *pb,*pf;
char ch;
printf("请输入要删除的联系人:");
scanf("%s", ch);
fflush(stdin);
pb=*people;//让pb指向头节点
if(*people == NULL)//链表为空链表
{
printf("链表为空\n");
return ;
}
while(strcmp(ch, pb->name) && pb->next!=NULL)//循环查找要删除的节点
{
pf=pb;
pb=pb->next;
}
if(strcmp(ch, pb->name) == 0)//找到了一个节点的name和ch相等
{
if(pb == *people)//找到的节点是头节点
*people = pb->next;
else//找到的节点是普通节点
pf->next = pb->next;
free(pb);
}
else//没有找到咱们要删除的节点
printf("没有找到您要删除的节点\n");
} @不二如是 可能是因为审核多次发帖,请看是不是删帖处理下 sunrise085 发表于 2020-4-8 14:46
为什么同一个问题发这么多个帖子!!有灌水嫌疑!!
兄弟,我发一次,系统提示一次啥啥啥未找到帖子,我就纳闷儿了,就一直发,一直提示。最后把整个代码粘贴上去的,才可以 love_qj 发表于 2020-4-11 21:53
兄弟,我发一次,系统提示一次啥啥啥未找到帖子,我就纳闷儿了,就一直发,一直提示。最后把整个代码粘贴 ...
我真正是冤枉啊,灌水有啥好处吗?
页:
[1]