数据结构(C语言版)设有线性表LA(3,5,8,110)和LB(2,6,8,9,11,15,20)求新集合?

数据结构(C语言版)设有线性表LA(3,5,8,110)和LB(2,6,8,9,11,15,20)求新集合?

1:若LA和LB分别表示两个集合A和B,求新集合A=A∪B(相同元素不保留)预测输出LA=(3,5,8,11,2,6,9,15,20)

2:若LA和LB分别表示两个集合A和B,求新集合A=A∪B(相同元素保留)预测输出LA=(2,3,5,6,8,8,9,11,11,15,20)

数据结构(C语言版)设有线性表LA(3,5,8,11)和LB(2,6,8,9,11,15,20)求新集合

人气:420 ℃时间:2020-03-22 18:35:54

优质解答

#include

#include

#define list_init_size 100

#define listincrement 10

typedef struct

{ int *elem;

int length;

int listsize;

} sqlist;

int initsqlist (sqlist *l)//初始化

{

l->elem=(int *)malloc(list_init_size*sizeof(int));

\x09if(!l->elem)

\x09\x09exit(0);

\x09l->length=0;

\x09l->listsize=list_init_size;

\x09return 0;

}

int listinsert_sq(sqlist *l,int i,int e)//插入一个元素

{

\x09int *p,*q;

\x09if(il->length+1)

\x09\x09exit(0);

\x09q=&(l->elem[i-1]);

\x09for(p=&(l->elem[l->length-1]);p>=q;--p)

\x09\x09*(p+1)=*p;

\x09*q=e;

\x09++l->length;

\x09return 0;

}

void add(sqlist *l,int e)//添加到最后

{

listinsert_sq(l,l->length+1,e);

}

void disp(sqlist *l)

{

int i;

for(i=0;ilength;i++)

\x09 printf("%d ",l->elem[i]);

printf("\n");

}

int find(sqlist *l,int e)//查找元素是否存在

{

int i,t=-1;

for(i=0;ilength;i++)

\x09if(l->elem[i]==e)

\x09{t=i;break;}

return t;

}

void opt_1(sqlist *la,sqlist *lb)//(相同元素不保留)

{

int i,j;

for(i=0;ilength;i++)

{

\x09j = find(la,lb->elem[i]);

if(j==-1)

\x09\x09listinsert_sq(la,la->length+1,lb->elem[i]);

}

}

void sort(sqlist *la) //排序

{

\x09int i,j,k;

\x09for(i=0;ilength;i++)

\x09\x09for(j=i+1;jlength;j++)

\x09\x09{

\x09\x09 if(la->elem[i]>la->elem[j])

\x09\x09 {

\x09\x09\x09 k = la->elem[i];

\x09\x09\x09 la->elem[i] = la->elem[j];

\x09\x09\x09 la->elem[j] = k;

\x09\x09 }

\x09\x09}

}

void opt_2(sqlist *la,sqlist *lb)//(相同元素保留)

{

int i,j;

for(i=0;ilength;i++)

{

\x09j = find(la,lb->elem[i]);

if(j!=-1)

\x09\x09listinsert_sq(la,j+1,lb->elem[i]);

\x09else

\x09\x09listinsert_sq(la,la->length+1,lb->elem[i]);

}

sort(la);

}

int main()

{

\x09sqlist La,Lb;

\x09initsqlist(&La);

add(&La,3);

add(&La,5);

add(&La,8);

add(&La,11);

\x09initsqlist(&Lb);

add(&Lb,2);

add(&Lb,6);

add(&Lb,8);

add(&Lb,9);

add(&Lb,11);

add(&Lb,15);

add(&Lb,20);

\x09disp(&La);

\x09disp(&Lb);

\x09opt_1(&La,&Lb);//操作(相同元素不保留)

\x09disp(&La);

\x09La.length = 0; //重新初始化La

add(&La,3);

add(&La,5);

add(&La,8);

add(&La,11);

\x09opt_2(&La,&Lb);//操作(相同元素保留)

\x09disp(&La);

\x09

\x09return 0;

}

输出:

3 5 8 11

2 6 8 9 11 15 20

3 5 8 11 2 6 9 15 20

2 3 5 6 8 8 9 11 11 15 20

我来回答

类似推荐

c语言数据结构线性表LA和LB,数据结构(C语言版)设有线性表LA(3,5,8,110)和LB(2,6,8,9,11,15,20)求新集合?...相关推荐

  1. 我的世界药水合成表图Java_我的世界手机版药水合成表 药水效果

    在我的世界手机版0.12更新后加入了酿造系统,神奇的药水终于和我们见面啦~到了生存后期,玩家一般会收集到大量的资源,这时的药水对于玩家有很大的帮助,特别是下界的一些活动,玩家可以在下界通过使用喷溅型治 ...

  2. 【数据结构】线性表的顺序存储结构(c语言实现)

    最近在复习数据结构,参考资料为王道数据结构 /*********************************************************//*Project: sequence ...

  3. c语言线性表写的数据库系统(数据结构)

    数据库系统 用C语言的链表知识做了一个简单的数据库,原理简单,可以直接复制代码使用,请大佬指导 #include"consts.h" #include<sys\stat.h& ...

  4. c语言输出单链表最大值与最小值,数据结构(C语言版)---顺序表与链表的比较...

    1.存取方式 1)顺序表:可以顺序存取,也可以随机存取. 2)链表:只能从表头顺序存取. 2.逻辑结构与物理结构 1)顺序存储:逻辑上相邻,物理位置相邻. 2)链式存储:逻辑上相邻,物理位置不一定相邻 ...

  5. 大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 21

    大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 211 第 ...

  6. Java数据结构(1.1):数据结构入门+线性表、算法时间复杂度与空间复杂度、线性表、顺序表、单双链表实现、Java线性表、栈、队列、Java栈与队列。

    数据结构与算法入门 问题1:为什么要学习数据结构          如果说学习语文的最终目的是写小说的话,那么能不能在识字.组词.造句后就直接写小说了,肯定是不行的, 中间还有一个必经的阶段:就是写作 ...

  7. 2-1-单链表顺序存储结构-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版...

    课本源码部分 第2章  线性表 - 单链表顺序存储结构 --<数据结构>-严蔚敏.吴伟民版        ★有疑问先阅读★ 源码使用说明  链接☛☛☛ <数据结构-C语言版>( ...

  8. 线性表(顺序存储结构)C语言

    文章目录 前言 一.线行表的顺序存储结构 二.代码 三.运行结果 前言 最近在学数据结构,想在这里记录一下,也方便以后查找 一.线行表的顺序存储结构 线性表分为两种存储结构,顺序存储与链式存储. 顺序 ...

  9. 【数据结构】顺序表的增删查改 (C语言实现)

    文章目录 一.线性表 二.顺序表 1.什么是顺序表 2.顺序表的分类 三.动态顺序表的实现 1.结构的定义 2.顺序表的初始化 3.检查容量 4.在头部插入数据 5.在尾部插入数据 6.在指定位置插入 ...

最新文章

  1. Keras—ModelCheckpoint
  2. Goods:图书模块按分类查询各层实现
  3. Excel批量转csv格式
  4. 新手怎么读懂一个中型的Django项目
  5. Python cv2 摄像头
  6. 【C++深度剖析教程27】多态的概念与意义
  7. C语言实现大数据除法
  8. python制作的游戏如何转化为swf_如何从python生成swf格式的幻灯片?
  9. 本来共享的计算机突然无法访问,WIN7局域网无法启用共享访问解决办法
  10. SD皇冠毛绒布料材质制作视频教程 中文字幕
  11. 航空公司客户价值分析R语言实现
  12. 计算机术语一种单向密码体制,密码体制有哪五部分
  13. 通过EasyPOI导入excel数据
  14. 2008年会不会是Linux的桌面年
  15. 出现跨域问题的原因及其解决方法
  16. 韩国电力供应商利用区块链构建生态友好型微电网
  17. 动脑学院android 高级ui,动脑学院高级ui课程9.1:贝塞尔曲线简单介绍
  18. mysql数据表出现Table is marked as crashed and should be repaired 解决办法
  19. 网站模板价格多少才合理呢?
  20. java中如何输入乘号_乘号在JAVA编成中应怎样直接读取? 它应属于什么类型的?...

热门文章

  1. 彻底搞懂 Git-Rebase
  2. Spring Cloud Config采用Git存储时两种常用的配置策略
  3. 分数等级_志愿填报丨填报公办普通高中志愿,分数成绩和等级成绩均需关注
  4. python 命名空间冲突_通过修改命名空间绕过pb冲突
  5. Java为什么print显示不完全,read-eval-print-loop – 在Java 9上,为什么System.getenv()的输出在jshell中不完整?...
  6. CoTNet 修改笔记
  7. python for循环删除
  8. mnn linux编译
  9. module 'torch.jit' has no attribute 'unused'
  10. go dll 传char*