顺序表-有序顺序表表示集合-并集(两者比较,小者放入C,未遍历继续放入)
顺序表的存储结构:
typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList;
分析:
这里有序的顺序表,可以利用有序顺序表的归并算法来解题。
用第三个顺序表C来存放并集元素。
因为是有序的,所以两个顺序表比较,谁小谁放入C中,如果相等,那么就比较一个。
将剩余的元素(A或B)放入C中。
思路:
1.定义三个变量 ,i ,j ,k 初始值都为0。
2.通过while循环,条件为i < A.length && j < B.length
两个顺序表相互比较,
- 如果A.data[i] < B.data[j] ,则将A.data[i] ,放入C中。
- 如果A.data[i] > B.data[j] ,则将B.data[i] ,放入C中。
- 如果A.data[i] =B.data[j] ,则将A.data[i] ,放入C中。
3.将未遍历完的顺序表(可能A或B),放入C中。
C代码实现:
void Union(Sqlist A,Sqlist B,Sqlist &C){int i = 0,j = 0,k = 0;while(i < A.length && B.length){if(A.data[i] < B.data[j]){C.data[k] = A.data[i];i++;k++;}else if((A.data[i] > B.data[j]){C.data[k] = B.data[j];k++;j++;}else{C.data[k] = A.data[i]; //公共元素只放一个i++;j++;k++;}}while(i < A.length){ //若A未遍历完C.data[k] = A.data[i];k++;i++;}while(j < B.length){ //若B未遍历完C.data[k] = B.data[];j++;k++;}C.length = k;}
顺序表-有序顺序表表示集合-并集(两者比较,小者放入C,未遍历继续放入)相关推荐
- 顺序表-有序顺序表表示集合-交集(while + 值比较)
顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 前面的顺序表是没有在 ...
- 顺序表——有序顺序表的插入
本题要求实现递增顺序表的有序插入函数.L是一个递增的有序顺序表,函数Status ListInsert_SortedSq(SqList &L, ElemType e)用于向顺序表中按递增的顺序 ...
- 顺序表-顺序表表示集合-并集(A复制到C,B遍历比较C)
顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 这里是求并集 ,也就 ...
- 顺序表应用6:有序顺序表查询
顺序表应用6:有序顺序表查询 Time Limit: 7MS Memory Limit: 700KB Submit Statistic Problem Description 顺序表内按照由小到大的次 ...
- [SDUT](3329)顺序表应用5:有序顺序表归并 ---有序表归并(线性表)
顺序表应用5:有序顺序表归并 Time Limit: 100MS Memory Limit: 880KB Submit Statistic Discuss Problem Description 已知 ...
- 顺序表应用5:有序顺序表归并
题目描述 已知顺序表A与B是两个有序的顺序表,其中存放的数据元素皆为普通整型,将A与B表归并为C表,要求C表包含了A.B表里所有元素,并且C表仍然保持有序. 输入 输入分为三行: 第一行输入m.n(1 ...
- 递增有序顺序表的插入 (20分) 实验目的:1、掌握线性表的基本知识 2、深入理解、掌握并灵活运用线性表。3、熟练掌握线性表的存储结构及主要运算的实现 已知顺序表L递增有序,将X插入到线性表的适当位置
递增有序顺序表的插入 (20分) 实验目的:1.掌握线性表的基本知识 2.深入理解.掌握并灵活运用线性表.3.熟练掌握线性表的存储结构及主要运算的实现 已知顺序表L递增有序,将X插入到线性表的适当位置 ...
- 6-2 有序顺序表的插入
本题要求实现递增顺序表的有序插入函数.L是一个递增的有序顺序表,函数Status ListInsert_SortedSq(SqList &L, ElemType e)用于向顺序表中按递增的顺序 ...
- ¥1-1 SWUST oj 941: 有序顺序表的合并操作的实现
有序顺序表的合并操作的实现 题目描述 源代码 题目描述 源代码 #include<iostream> #include<malloc.h> using namespace st ...
最新文章
- DBCP2配置详细说明(中文翻译)
- jquery操作dom
- c# 两个数的加减乘除
- Fedora 17删除旧内核的操作
- [Unity3D]unity3d5.0简单的调用摄像头
- modem (1)---手机主叫的信道流程与Modem Log简单分析
- [Hive] - Hive参数含义详解
- Chrome 35个开发者工具的小技巧
- eclipse 装配server时找不到tomcat
- 浅谈C++中的资源管理
- win32SDK的hello,world程序(二)
- 第一课 矩阵的行图像与列图像(麻省理工公开课:线性代数)【转载】
- 国产常用GIS工具软件
- 清华大学计算机考研总结,2020考研清华大学计算机考研考试科目总结
- 集合体系结构、Collection集合概述及常用方法(附迭代器遍历对象实例)、List(附子类LinkedList、ArrayList特点)、ListIterator、并发修改异常、增强for
- 双甜点预测的几点总结:
- 灵活有效的激励手段-鲶鱼效应
- BZOJ 3375: [Usaco2004 Mar]Paranoid Cows 发疯的奶牛( set )
- 攻防世界-web xff_Referer
- 清华大学计算机系上机考试,清华大学计算机系图形学考试习题.docx