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

供稿:hz-xin.com     日期:2025-01-17
高手帮帮忙:已知线性表la和lb中的数据元素按值非递减有序排列,现要求将la和lb归并为一个新的线性表lc,

你可以试着再自己写一个更好的。


#include
#include
#define MAXSIZE 10
typedef struct
{
int elem[MAXSIZE];
int len;
}sqlist;

void merge(sqlist *la,sqlist *lb,sqlist *lc)
{
int i,j,k;
i=j=k=0;
if(la->len+lb->len<=MAXSIZE)
{
while(ilen&&jlen)
{
if(la->elem[i]elem[j])
{
lc->elem[k]=la->elem[i];
i++;
k++;
}
else
{
lc->elem[k]=lb->elem[j];
j++;
k++;
}
}
while(ilen)
{
lc->elem[k]=la->elem[i];
i++;
k++;
}

while(jlen)
{
lc->elem[k]=lb->elem[j];
j++;
k++;
}
lc->len=la->len+lb->len;
}
else printf("out of bound");
}

void print(sqlist *l)
{
int i;
for(i=0;ilen;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);
}

如果是关闭的代码字,每个人写不同的东西,你直接复制一个内存错误的可能性很大。您发送一封邮件到我的邮箱,我做我的工作空间分配给你和我做的序列表和单链表2“,创建一个链表”,“插入”,“删除”,“排序”“如果你的邮件我的邮箱:199307015017@sohu.com路口“和”合并“查找”,“定位”等功能。

楼上的那个办法是正确的
我这个就是不用再次排序 逻辑判断比较和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++;}
}
}

#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(

先把两个组的数合成一个组,然后按冒泡法排序就行啦。

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

用c语言编写程序1.建立一个线性表,输入n个元素并输出2.查找最大元素并...
线性表 可以使用链表 或者数组实现 以动态数组为例 include <stdio.h>#include <stdlib.h>int main(){ int *a, n, max, i; scanf("%d",&n); a= (int*)malloc(sizeof(int)*n); for(i = 0; i < n; i ++) scanf("%d",a+i); for(i = 1,max=a[0]; ...

如何用C语言写一个函数输出线性表中指定范围的数字
include <stdio.h>int main(void){ int data[] = {2,5,15,30,1,40,17,50,9,21,32,8,41,22,49,31,33,18,50,5} ; int newdata[30]; int i,j=0; for(i = 0;i <sizeof(data);i++) { if(data[i]>=10&&data[i]<=30) { continue; } ...

已知线性表La和Lb中的元素按值非递减排列。归并La和Lb得到新的线性表L...
while(_LinkList1 != NULL){ _LinkList2 = _LinkList1;_LinkList1 = _LinkList1->next;delete(_LinkList2);}

线性表的基本操作c语言实现
代码如下:头文件:2_1.h ifndef _2_1_H define _2_1_H typedef void SeqList;typedef void SeqListNode;\/\/创建线性表 SeqList * SeqList_Create(int capacity);\/\/销毁线性表 void SeqList_DesTroy(SeqList * list);void SeqList_Clear(SeqList* list);int SeqList_Length(SeqList* ...

用C语言编写链式存储结构下实现线性表的创建,插入,删除,按值查找_百 ...
j++;} return p;} \/*单链表的按值查找*\/ LinkList LocalElem(LinkList la,int e){ LNode* p=la->next;while(p!=NULL && p->data!=e)p=p->next;return p;} \/*单链表插入操作*\/ bool InsertList(LinkList la,int i,int e){ \/\/在la链表中的i位置插入数值e int j=1;...

C语言程序设计:线性方程组求解
程序如下:include <stdio.h> include <stdlib.h> include <malloc.h> include <math.h> int GS(int,double**,double *,double);double **TwoArrayAlloc(int,int);void TwoArrayFree(double **);void main(){ int i,j,n;double ep,**a,*b;ep = 1e-4;printf("你要解几元线性方程...

用c语言编程求线性方程组的解
而且将矩阵以线性表输入的.我也写过一个,不过估计你不太喜欢用我的,这个用来解b也是矩阵的.include <stdio.h> include <stdlib.h> include <math.h> void swap(double *a,double *b){ double temp;temp=*a;a=*b;b=temp;} void printMatrix(int n,int m,double **a){ int i,j;...

求帮忙改下C语言代码,要求是用线性表实现两个多项式相乘。代码这里写不...
DuLNode * insertdu(DuLNode *L,int n) 函数中的 scanf("%d",&s->data);scanf("%d",&s->expn);要改成 scanf("%d^%d",&s->data,&s->expn);int main()函数中的 headC=multiply(&A, &B, &C);要改成 headC=multiply(headA, headB, &C);...

用c语言编写一个程序用高斯消元法求解线性方程组的解程序流程图_百度知 ...
include <cmath> using namespace std;int main(){ int n,i,j,k;double a[100][100],b[100],o;cout<<"输入未知数个数:"<<endl;cin>>n;cout<<"输入"<<n<<"个方程组(未知数系数及等号右边常数):"<<endl;for (i=1;i<=n;i++)for (j=1;j<=n+1;j++)cin>>a[i][j];f...