| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3592 人关注过本帖
标题:数据结构
只看楼主 加入收藏
善丑恶
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2020-11-28
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
数据结构


已经给出了顺序表结构体SeqList的定义。 并给出了若干操作集可以调用。 请补完主函数: 实现计算集合的并集。

输入两个整数集合A和B,输出他们的交集。 如:一个元素个数集合A={11,12,13,14,15,16,17,18,19,20},集合B={11,12,15,16,19,20,25,26} 则集合A并B={11,12,13,14,15,16,17,18,19,20,25,26}。

输入要求:
输入1组数据,共占4行,代表集合A和B的元素个数和具体元素。 第1行:正整数n(n<=50),表示集合A的元素个数为n。 第2行:n个整数,用空格分隔,为集合A的数据元素。 第3行:正整数m(m<=50),表示集合B的元素个数为m。 第4行:m个整数,用空格分隔,为集合B的数据元素。

输出要求:
输出集合A和集合B的并集。

数据示例1:
输入:
5
1 3 5 7 9
5
1 2 3 4 5
输出:
集合A:1 3 5 7 9
集合B:1 2 3 4 5
A和B的并集:1 3 5 7 9 2 4














#include<stdio.h>
typedef struct{
    int data[100];
    int length;
}SeqList;                                //顺序表结构体SeqList

/*可用的操作集*/
void InitList(SeqList *list);            //建空表
int Length(SeqList list);                //获取表长
int GetElem(SeqList list,int i);        //获得下标i的元素值(下标从0开始)
int Locate(SeqList list,int x);            //根据元素值x找所在下标(下标从0开始)
void Insert(SeqList *list,int i,int x); //在顺序表list中下标i的位置,插入元素x(下标从0开始)
void Delete(SeqList *list,int i,int *x);//将顺序表list中下标i的元素删除,被删除元素通过指针x传回主函数(下标从0开始)
void PrintList(SeqList list);            //输出顺序表list中所有元素值,占一行

int main() {
   
    SeqList listA,listB;
   
    //初始化表A和表B
   

    int i,x,n,m;
    scanf("%d",&n);                //集合A的数据个数
    for(i=0;i<n;i++)            //输入集合A
    {
        scanf("%d",&x);
(填写代码)
1
(填写代码)
    }
   
    scanf("%d",&m);                //集合B的数据个数
    for(i=0;i<m;i++)            //输入集合B
    {
        scanf("%d",&x);
1
(填写代码)
    }
   

    printf("集合A:");    PrintList(listA);
    printf("集合B:");    PrintList(listB);

    //求A和B的并集
1

   
    printf("A和B的并集:");
1
(填写代码)
(填写代码)
1
(填写代码)

    int i,x,n,m;
    scanf("%d",&n);                //集合A的数据个数
    for(i=0;i<n;i++)            //输入集合A
    {
        scanf("%d",&x);
        
    }
   
    scanf("%d",&m);                //集合B的数据个数
    for(i=0;i<m;i++)            //输入集合B
    {
        scanf("%d",&x);
        
    }
   

    printf("集合A:");    PrintList(listA);
    printf("集合B:");    PrintList(listB);

    //求A和B的并集
   
   
    printf("A和B的并集:");
   

    return 0;
}


void InitList(SeqList *list){ list->length=0;}
int Length(SeqList list)    {return list.length;}
int GetElem(SeqList list,int i)    {return list.data[i];}
int Locate(SeqList list,int x)    {for(int i=0;i<list.length;i++) if(x==list.data[i]) return i; return -1;}
void Insert(SeqList *list,int i,int x)    {for(int j=list->length;j>i;j--)    list->data[j]=list->data[j-1];    list->data[i]=x;    list->length++;}
void Delete(SeqList *list,int i,int *x)    {*x=list->data[i];for(int j=i;j<list->length;j++)list->data[j]=list->data[j+1];    list->length--;}
void PrintList(SeqList list){for(int i=0;i<list.length;i++) printf("%d ",list.data[i]); printf("\n");}
搜索更多相关主题的帖子: 元素 int 集合 list data 
2021-03-27 14:42
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:216
帖 子:1483
专家分:9055
注 册:2010-3-16
收藏
得分:20 
拜托写题目的时候认真点。
2021-03-27 17:32
善丑恶
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2020-11-28
收藏
得分:0 
回复 2楼 apull
这是不懂得地方
2021-04-08 16:36
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:216
帖 子:1483
专家分:9055
注 册:2010-3-16
收藏
得分:0 

你没发现你把mian里的内容粘贴了2次么?

程序代码:
int main()
{
    SeqList listA, listB;

    //初始化表A和表B
    InitList(&listA);
    InitList(&listB);

    int i, x, n, m;
    scanf("%d", &n);        //集合A的数据个数
    for (i = 0; i < n; i++) //输入集合A
    {
        scanf("%d", &x);
        //(填写代码)
        //1
        //(填写代码)
        Insert(&listA, i, x);
    }

    scanf("%d", &m);        //集合B的数据个数
    for (i = 0; i < m; i++) //输入集合B
    {
        scanf("%d", &x);
        //1
        //(填写代码)
        Insert(&listB, i, x);
    }

    printf("集合A:");
    PrintList(listA);
    printf("集合B:");
    PrintList(listB);

    //求A和B的并集
    //1
    for (i = 0; i < Length(listB); i++)
    {
        if ((m = Locate(listA, GetElem(listB, i))) < 0) //在listB里找与listA不同的元素,插入到listA中
        {
            Insert(&listA, Length(listA), GetElem(listB, i));
        }
    }

    printf("A和B的并集:");
    //1
    //(填写代码)
    //(填写代码)
    //1
    //(填写代码)
    PrintList(listA);

    return 0;
}
2021-04-08 21:11
快速回复:数据结构
数据加载中...
 
   



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

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