| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1021 人关注过本帖
标题:从链表a中删除与b链表相同的结点,求高手帮忙检错
只看楼主 加入收藏
灰色代言
该用户已被删除
收藏
已结贴  问题点数:20 回复次数:6 
从链表a中删除与b链表相同的结点,求高手帮忙检错
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: 链表 检错 结点 
2010-08-08 20:23
灰色代言
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-08 22:26
星舞突击者
Rank: 2
等 级:论坛游民
帖 子:15
专家分:68
注 册:2010-7-30
收藏
得分:10 
你删除链表最好用双链表,单链表在删除时还麻烦,要用两个指针一前一后的,否则在删除时无法对要删除的前一个节点进行操纵,本人也是在学数据结构,经验不多,你的那个p指针赋值为NULL了,后来的那个p->next=p1->next又是怎么回事呢?
2010-08-08 23:15
xxwpk007
Rank: 4
等 级:业余侠客
帖 子:166
专家分:289
注 册:2007-7-29
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <string.h>
#define LA 4
#define LB 5
#define NULL 0
struct student
{
    int num;
    char name[8];
    struct student *next;
}a[LA],b[LB];


int main(void)
{
    struct student a[LA]={{101,"wang"},{102,"li"},{105,"zhang"},{106,"wei"}};
    struct student b[LB]={{103,"zhang"},{104,"ma"},{105,"chen"},{107,"guo"},{108,"lui"}};
    int i;
    struct student *p,*p1,*p2,*head1,*head2;
    /*初始化*/
    head1=a;
    head2=b;
    printf("\nlist  a:\n");
    for(p1=head1,i=1;p1<a+LA;i++)
    {
        p=p1;
        p1->next=a+i;
        printf("%8d%8s\n",p1->num,p1->name);
        p1=p1->next;
    }
    p->next=NULL;
    printf("\nlist  b:\n");
    for(p2=head2,i=1;p2<b+LB;i++)
    {
        p=p2;
        p2->next=b+i;
        printf("%8d%8s\n",p2->num,p2->name);
        p2=p2->next;
    }
    p->next=NULL;
    printf("\n");
    
    /*删除*/
    p1=head1;
    while(p1 != NULL)
    {
        
        p2=head2;
        while(p2 != NULL && p1->num != p2->num)
            p2=p2->next;
        if(p2!=NULL && p1->num == p2->num) // 如果p2指向NULL,会访问出错,添加条件p2!=NULL
        {
            if(p1==head1)
                head1=p1->next;
            else
                p->next=p1->next;
        }
        p=p1;
        p1=p1->next;
    }
    
    
    p1=head1;
    printf("\nresult:\n");
    while(p1!=NULL)
    {
        printf("%7d %7s\n",p1->num,p1->name);
        p1=p1->next;
    }
    
    return 0;
}


[ 本帖最后由 xxwpk007 于 2010-8-8 23:34 编辑 ]
2010-08-08 23:33
灰色代言
该用户已被删除
收藏
得分:0 
回复 3楼 星舞突击者
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-08 23:54
灰色代言
该用户已被删除
收藏
得分:0 
回复 4楼 xxwpk007
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-09 00:04
xxwpk007
Rank: 4
等 级:业余侠客
帖 子:166
专家分:289
注 册:2007-7-29
收藏
得分:0 
回复 6楼 灰色代言


[ 本帖最后由 xxwpk007 于 2010-8-9 00:18 编辑 ]
2010-08-09 00:15
快速回复:从链表a中删除与b链表相同的结点,求高手帮忙检错
数据加载中...
 
   



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

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