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

作者&投稿:柯药 (若有异议请与网页底部的电邮联系)
高手帮帮忙:已知线性表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(

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


武威市19430865948: 用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]; i < n; i ++) if(max<a[i])max=a[i]; printf("%d\n",max); free(a); return 0; }

武威市19430865948: 用c语言编程求线性方程组的解 -
邱贱艾麦: #include "stdlib.h" #include "math.h" #include "stdio.h" int rgauss(n,a,b) int n; double a[],b[]; { int *js,l,k,i,j,is,p,q; double d,t; js=malloc(n*sizeof(int)); l=1; for (k=0;k<=n-2;k++) { d=0.0; for (i=k;i<=n-1;i++) for (j=k;j<=n-1;j++) { t=fabs(a[i*n+j]); if (t>d...

武威市19430865948: 用编程实现线性表的顺序存储结构的建立和查找.要求:1用C语言实现.2,使用函数实现 -
邱贱艾麦: 直接用链表不就得了.typedef struct _t_node { unsigned long data; struct _t_node *next; }T_LIST;// 建立 T_LIST *insert ( T_LIST *head , unsigned long data ) { T_LIST *tmpHead = head; T_LIST *tmp = NULL; while ( head != NULL && head->next !...

武威市19430865948: 用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表 -
邱贱艾麦: 已经调通的一个程序,你细微修改一下就好了/*C语言封笔*/#include#include#define NULL 0#define dd sizeof(struct stu) struct stu{ int num; char name[10]; struct stu *next; }; int n=0; struct stu *create(void)/*创建*/ {struct stu *p1,*p2,*head=...

武威市19430865948: 用C语言编写最小二乘法线性拟合 -
邱贱艾麦: 首先你要知道最小二乘法的公式,然后使用数组实现.比如定义数组double x[10]代表十个横坐标,double y[10]代表纵坐标,然后套公式用循环计算

武威市19430865948: 线性表的查找 -
邱贱艾麦: #include#define MaxSize 50 typedef struct //定义结构体 { int data[MaxSize]; int length; } SqList; void InitList(SqList *&L)//初始化线性表 { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } void DestroyList(SqList *L)//销毁线性表 { free(L); } int ListEmpty...

武威市19430865948: 数据结构中用C语言实现线性链表的创建,增加删除某节点等基本功能 -
邱贱艾麦: 链表的节点分为数据和指针next两部分,指针指向链表中的下一个节点 删除节点要将删除节点前一个节点的next指针指向要删除节点的下一个节点,并把要删除的节点占用的地址空间释放 插入节点要将插入位置前一个节点的next指针指向这个节点,将这个节点的next指针指向要插入节点位置的后一个节点 查找就是把目标节点依次与链表中的节点进行比较,不相等指针指向链表下一个节点

武威市19430865948: 用C语言编写程序实现线性表的顺序存储结构并实现以下功能: 1. 输入一组整数构造线性表; -
邱贱艾麦: 比如你要在第i个元素之后插入,就把i+1直到最后一个元素依次向后移动一位,再把你要放的元素放到第i+1位置即可

武威市19430865948: 用C语言实现两个线性链表的归并 -
邱贱艾麦: 以前学数据结构做过一个“非递减的链表合并一一个非递增的链表” 程序如下:#include <stdio.h>#include <stdlib.h> typedef struct node{ int data; struct node *next; }LinkList;/* 建立链表 */ LinkList *create_link(int m) { LinkList *head,*s,*p; int i; ...

武威市19430865948: 数据结构的习题(C语言版) -
邱贱艾麦: 第一个问题,分析下要求,可以知道要做的事情是合并两个数组到一个数组里去,数组C的长度是AB之和.表C的第一个字符不是A的第一个字符就是B的第一个字符.因此接下来要做的事情就是做一个...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网