鱼C论坛

 找回密码
 立即注册
查看: 1850|回复: 1

关于删除链表的问题

[复制链接]
发表于 2020-12-1 19:51:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
......
void del_dorm(Dorm **firstlist,char name[MAX])
{
        Dorm *head;
        Dorm *previous;
        
        head = *firstlist;
        previous = NULL;
        
        while(head != NULL && !(strcmp(previous->name,name)))
        {
                previous = head;
                head = head->next;
        }
        if (head == NULL)
        {
                printf("未能找到数据");
                return;
        }
        else
        {
                if(previous == NULL)
                {
                        *firstlist = previous->next;
                        free(previous);
                }
                else
                {
                        previous->next = head->next;
                        free(previous); 
                }
                printf("删除成功!");
        }
}
程序执行,删除链表中 程序会卡住然后崩掉,求助大佬们!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-1 21:49:08 | 显示全部楼层
void del_dorm(Dorm ** firstlist , char name[])
{
        Dorm * p , * q                                                                           ;
        for(q = NUULL , p = * firstlist ; p && strcmp(p -> name , name) ; q = p , p = q -> next) ;
        if(p) {
                if(! q) * firstlist = p -> next                                                  ;
                else q -> next = p -> next                                                       ;
                free(p)                                                                          ;
        } else {
                fprintf(stderr , "未能找到数据\n")                                               ;
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 13:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表