| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 419 人关注过本帖
标题:链表合并问题,请教,谢谢。
只看楼主 加入收藏
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
链表合并问题,请教,谢谢。
题目:有连个链表,需要把它们合并,下面是合并部分的程序,执行后总会出现内存错误,请帮忙找出哪块出了问题。谢谢
struct student
{
    int num;
    int score;
    struct student *next;
};
typedef struct student nod;
nod *insert(nod *head1,nod *head2)
{
    nod *insert_nod(nod *,nod *);
    nod *head;
    nod *p;
    nod *nextp;
    if(head1==NULL)
    return(head2);
    else if(head2==NULL)
    return(head1);
    else
    {
        head=head1;
        p=head2;
        while(p!=NULL)
        {
            nextp=p->next;
            head=insert_nod(head,p);
            p=nextp;
        }
        return(head);
    }

nod *insert_nod(nod *head,nod *t)
{
    nod *p=head;
    nod *q=NULL;
    while(p->num<t->num&&p!=NULL)
    {
        q=p;
        p=p->next;
    }
    if(p==head)
    {
        t->next=p;
        return(t);
    }
    q->next=t;
    t->next=p;
    return(head);
}

[ 本帖最后由 飘在深圳 于 2010-3-11 17:19 编辑 ]
搜索更多相关主题的帖子: 链表 
2010-03-11 17:08
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
while(p->num<t->num&&p!=NULL)
    {
       p=q; //这个是用来干什么用的,p都等于NULL了,到了下一句p->next肯定会出错的啦,去掉
        p=p->next;
    }
2010-03-11 17:24
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
晕了,刷了下屏就成了q = p了, 囧。。。。
2010-03-11 17:27
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:20 
p->num<t->num&&p!=NULL
to
p!=NULL && p->num<t->num
2010-03-11 17:31
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
前面写错了,笔误,更改过来还是这问题。
2010-03-11 18:09
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
p->num<t->num&&p!=NULL
to
p!=NULL && p->num<t->num
这改法没什么意义哦。
2010-03-11 18:13
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
当然有意义了
你看看&&的规则,当前面的为假后后面的就不用计算了,就避免了当p为空时还去访问它的成员
2010-03-11 18:22
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
哦,的确,没注意到,呵呵,谢谢。
2010-03-11 20:18
快速回复:链表合并问题,请教,谢谢。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014469 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved