C语言编程题,利用两个线性表LA和LB分别表示两个集合A和B,现要求一个集合A=A并B

如题所述

利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A∪B。
void union(List &La,List Lb) {
La-len=listlength(La);
Lb-len=listlength(Lb);
for(I=1;I<=lb-len;I++) {
getelem(lb,I,e);
if(!locateelem(la,e,equal))listinsert(la,++la-en,e)
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-20
下面你看看是不是这样的:
main()
{
char a[] = "abcdeg"; //有序的
char b[]="defhijklmn"; //有序额
char c[80],*p;
int i=0,j=0,k=0;
while(a[i]!='\0'&&b[j]!='\0')
{
if(a[i]<b[j])c[k++]=a[i++];
else if(a[i]>b[j])c[k++]=b[j++];
else
{
c[k++]=b[j++];i++;
}
}
while(a[i]=='\0'&&b[j]!='\0')
c[k++]=b[j++];
while(a[i]!='\0'&&b[j]=='\0')
c[k++]=a[i++];
c[k]='\0';
puts(c);
}本回答被网友采纳

C语言编程题,利用两个线性表LA和LB分别表示两个集合A和B,现要求一个集...
利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A∪B。void union(List &La,List Lb) { La-len=listlength(La);Lb-len=listlength(Lb);for(I=1;I<=lb-len;I++) { getelem(lb,I,e);if(!locateelem(la,e,equal))listinsert(la,++la-en,e)} } ...

利用两个线性表La和Lb分别表示两个集合A和B,现要求一个新的集合A=...
如果这两个数组是整型数组,那么可以用一个布尔数组纪录A和B当中的数(如果有则把对应的元素设为TRUE),然后从头到尾扫描布尔数组,把布尔值为TRUE的放入另一个数组当中(或覆盖掉A)就可以了。如果这两个数组不是整型,而是实型的话,那么我建议你使用二叉排序树来实现,它使查找每个元素的时间复杂度降...

问题描述:假设两线性表LA和LB分别表示两集合A和B,要求新集合A=A并...
using namespace std;int main(){ int a[]={1,5,8,12,5,-5,32};int b[]={3,5,1,-3,10};list< int > set1(a,a+sizeof(a)\/sizeof(int));list< int > set2(b,b+sizeof(b)\/sizeof(int));list< int > result;set1.sort();set2.sort();\/\/交集 set_intersection(set...

线性表的合并 java
使用ArrayList作为LA 、LB线性结构类型,则其可以自动进行扩大表操作,而不用判断增加容量的大小。循环LB IF(LB[I]在LA中不存在) 那么 将LB[I]放入LA END LB循环

有序表的合并(顺序有序表,链式有序表)
1、顺序有序表:用两个线性表LA和LB分别表示集合A和集合B,利用两个指针pa和pb,分别指向LA和LB的第一个元素,如果pa所指的元素小于等于pb所指的元素(*pa<=*pb),则将pa所指元素存入到pc所指的存储空间中,并将pa和pc所指单元向下移动(pa++;pc++;),同理若pa所指的元素大于pb所指的元素,则...

数据结构(C语言版)设有线性表LA(3,5,8,110)和LB(2,6,8,9,11,15,20...
void opt_1(sqlist *la,sqlist *lb)\/\/(相同元素不保留){ int i,j;for(i=0;i<lb->length;i++){ j = find(la,lb->elem[i]);if(j==-1)listinsert_sq(la,la->length+1,lb->elem[i]);} } void sort(sqlist *la) \/\/排序 { int i,j,k;for(i=0;i<la->length;i+...

如何用c语言编合并两个顺序线性表的程序?
1、 一开始的思路:把A、B都丢进C里,然后对C排序。人们一开始想到的总是最懒的办法,往往是最没效率的。 改进:由于A、B是排好序的,先把A丢进C里,再拿B元素一个个往里查找插入。这么做要频繁移动元素,如果线性表不是链表的话,开销很大。 再改进:从A、B中各拿一个元素出来,比较后把...

高手帮帮忙:已知线性表la和lb中的数据元素按值非递减有序排列,现要求将...
sqlist *l){ int i;for(i=0;i<l->len;i++){ printf("%d ",l->elem[i]);} } int main(void){ int i;sqlist la={{1,2,5,8,9},5};sqlist lb={{2,4,7,18,21},5};sqlist lc={{0},0};merge(&la,&lb,&lc);print(&lc);system("pause");return(0);} ...

一个C++的小问题SqList la,lb这句是什么意思?有何作用?
定义线性表 la lb.它的形式就好比定义 整形变量 int la,lb,只是它前面是线性表定义的。

高手帮帮忙:已知线性表la和lb中的数据元素按值非递减有序排列,现要求将...
有连个表 la[i]和lb[j] 算法实现为 for[k=0,x=0,y=0;k<i+j;k++]{ if(la[x]>=lb[y]){lc[k]=lb[y];y++;} else{lc[k]=la[x];x++;} }

相似回答