请用C语言编程实现 1. 已知线性表LA和LB中的数据元素按值非递增有序排列,现要求将LA和LB归并为一个新

的线性表LC,且LC中的数据元素仍按值非递增有序排列。例如,设
LA=(3,5,8,11)
LB=(2,6,8,9,11,15,20)

LC=(2,3,5,6,8,8,9,11,11,15,20)

楼上的那个办法是正确的
我这个就是不用再次排序 逻辑判断比较和2个数组元素的合并都放在一起了
试试对不对 网吧里没有工具 很是难受
#include <stdio.h>
void main()
{
int a[]={1,8,11,14,25};
int b[]={1,3,5,7,9,11,13,14,15,18,33};
int c[16];
int a1=0,b1=0;
for(int i=0;i<16;i++)
{
if(a1<5&&b1<11)
{
if(a[a1]<b[b1]){c[i]=a[a1];a1++;}else{c[i]=b[b1];b1++;}
}
else if(a1<5){c[i]=a[a1];a1++;}
else{c[i]=b[b1];b1++;}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-10
#include<stdio.h>
#include<malloc.h>
#define ok 1
#define error 0
#define LIST_INT_SIZE 10
#define elemtype int
typedef struct{
int *elem;
int length;
int listsize;
}sqlist;
int Init_sqlist(sqlist *la)
{
(*la).elem=(int*)malloc(LIST_INT_SIZE*sizeof(int));
if(!(*la).elem)return error;
(*la).length=0;
(*la).listsize=LIST_INT_SIZE;
return ok;
}
void mergelist_sq(sqlist la,sqlist lb,sqlist &lc);
int main()
{
int i;sqlist la,lb,lc;
Init_sqlist(&la);
Init_sqlist(&lb);

for(i=0;i<4;i++)

scanf(
第2个回答  2010-11-08
先把两个组的数合成一个组,然后按冒泡法排序就行啦。

请用C语言编程实现 1. 已知线性表LA和LB中的数据元素按值非递增有序排 ...
else{c[i]=b[b1];b1++;} } }

高手帮帮忙:已知线性表la和lb中的数据元素按值非递减有序排列,现要求将...
void merge(sqlist *la,sqlist *lb,sqlist *lc){ int i,j,k;i=j=k=0;if(la->len+lb->len<=MAXSIZE){ while(i<la->len&&j<lb->len){ if(la->elem[i]<lb->elem[j]){ lc->elem[k]=la->elem[i];i++;k++;} else { lc->elem[k]=lb->elem[j];j++;k++;} } ...

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

数据结构非递减有序集合合并问题,急!
描述巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。#include<iostream>#include<set>usingname... 描述巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按...

已知顺序表la和lb中的元素依值非递减有序排列
{ \/* 已知线性表La和Lb中的数据元素按值非递减排列。 *\/ \/* 归并La和Lb得到新的线性表Lc,Lc的数据元素也按值非递减排列 *\/ int i=1,j=1,k=0;int La_len,Lb_len;ElemType ai,bj;InitList(Lc); \/* 创建空表Lc *\/ La_len=ListLength(La);Lb_len=ListLength(Lb);while(i<=La_...

C语言 有两个单链表LA和LB,其元素均为非递减有序排列,编写一个算法。将...
}LinkList merge(LinkList LA,LinkList LB) {pNode a,b,c,head;a = LA;b = LB;c = head = GetNewList();head->data = LA->data + LB->data;while(a->next && b->next) {c->next = (pNode)malloc(sizeof(NODE));if(c->next == NULL) {printf("内存分配失败!\\n");...

已知线性表La和Lb中的元素按值非递减排列。归并La和Lb得到新的线性表L...
cout<<"输入第"<<(i+1)<<"个元素:";cin>>_Var;Insert_Sort_LinkList(_LinkList,_Var);} return _LinkList;} \/\/销毁链表 void Destroy_LinkList(LinkList *myLinkList){ LinkList _LinkList1,_LinkList2;if(!(*myLinkList)){cout<<"链表不存在!"<<endl;return;} _LinkList1 = ...

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)} } ...

【100分】数据结构——使用C语言(线性表)
void initList(sqlist &La){\/\/构造一个空线性表L La.elem=(int *) malloc(100 *sizeof(int));\/\/分配空间 if (!La.elem) exit(-2);\/\/未分配则 跳出;La.length=0;La.listsize= 100 ;} int Listinsert_sq(sqlist &L,int i,int e) \/\/ listinsert_sq;插入一个元素 {int *...

已知线性表中的元素(整数)以值递增有序排列,并以单链表作存储结构。试...
下面是用类C语言描述的算法 希望能对你有所帮助 呵呵 LinkedList LinkedListClear(LInkedList L){\/\/清空单链表,并释放节点所占空间 p=L->next;while(p!=NULL){ q=p->next;free(p);p=q;} L->next=NULL;return L;}

相似回答