| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1113 人关注过本帖
标题:用单链表求两集合交集,求大神帮忙看一下哪里错了,万分感谢
只看楼主 加入收藏
飞黄腾达
Rank: 2
等 级:论坛游民
帖 子:46
专家分:27
注 册:2013-3-14
结帖率:29.41%
收藏
已结贴  问题点数:10 回复次数:6 
用单链表求两集合交集,求大神帮忙看一下哪里错了,万分感谢
#include<stdio.h>
typedef struct node1{
    int data;
    struct node *next1;
}*L1list;
typedef struct node2{
    int data;
    struct node *next2;
}*L2list;
void print(L1list L1,L2list L2);
int judge(int m,L2list L2);
void result(L1list head1);
void intersec(L1list A,L2list B);
int main()
{

    int n,m,i;
    L1list p1,r1,q1,head1;
    L2list p2,r2,q2,head2;
    head1=NULL;
    head2=NULL;
    printf("输入第一个数据\n");
    scanf("%d",&n);
    while(n!=0)
    {
        p1=(L1list)malloc(sizeof(L1list));
        p1->data=n;
        p1->next1=NULL;
        if(head1==NULL)
        {
            head1=p1;
            r1=p1;
        }
        else
        {
            r1->next1=p1;
            r1=p1;
        }
        printf("输入下一个数\n");
        scanf("%d",&n);
    }
    getchar();
    printf("输入第二个数据\n");
    scanf("%d",&m);
    while(m!=0)
    {
        p2=(L2list)malloc(sizeof(L2list));
        p2->data=m;
        p2->next2=NULL;
        if(head2==NULL)
        {
            head2=p2;
            r2=p2;
        }
        else
        {
            r2->next2=p2;
            r2=p2;
        }
        printf("输入下一个数\n");
        scanf("%d",&m);
    }

 print(head1,head2);
 intersec(head1,head2);
 result(head1);
}
void result(L1list head1)
{
    L1list p;
    printf("A^B为\n");
    while(p)
    {
        printf("%d",p->data);
        p=p->next1;
    }
}

void print(L1list L1,L2list L2)
{
    L1list p1;
    L2list p2;
   
    p1=L1;
    p2=L2;
    printf("第一个链表为\n");
    while(p1)
    {
        printf("%d",p1->data);
        p1=p1->next1;
    }

    printf("第二个链表为\n");
        while(p2)
    {
        printf("%d",p2->data);
        p2=p2->next2;
    }
}
void intersec(L1list A,L2list B)
{
    L1list p,pr;
    int n;
    pr=A;
    p=pr;
    while(p)
    {
        n=p->data;
        if(!judge(n,B))
        {
          pr->next1=p->next1;
          free(p);
          while(p->next1)
          p=pr->next1;
        }
        else
        {
            pr=p;
            p=p->next1;
        }
    }
}
int judge(int m,L2list L2)
{
    L2list q;
    q=L2;
    if(q)
    {
        if(q->data==m)
        
        return 0;
          else
              q=q->next2;
     }
 else return 1;
}

            
搜索更多相关主题的帖子: void include result 
2013-03-18 22:01
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:3 
和我看的...

[ 本帖最后由 Susake 于 2013-3-18 22:37 编辑 ]

仰望星空...........不忘初心!
2013-03-18 22:02
飞黄腾达
Rank: 2
等 级:论坛游民
帖 子:46
专家分:27
注 册:2013-3-14
收藏
得分:0 
回复 2楼 Susake
不会吧,这是我自己原创的呀
2013-03-18 22:35
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
不好意思,看快了...

仰望星空...........不忘初心!
2013-03-18 22:37
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:3 
编译不过,好多这种错误

cannot convert from 'struct node1 *' to 'struct node *'

细心点,慢慢改吧


[fly]存在即是合理[/fly]
2013-03-18 23:06
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:3 
这代码写的,有怎么复杂没,结构体都弄了2个,输入输出写的怎么繁琐

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-03-19 23:37
好聚好散
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:138
专家分:123
注 册:2012-12-4
收藏
得分:3 
嘿嘿不懂

无节操,无真相
2013-03-20 14:58
快速回复:用单链表求两集合交集,求大神帮忙看一下哪里错了,万分感谢
数据加载中...
 
   



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

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