2 sinat 36204309 sinat_36204309 于 2016.09.25 09:24 提问

c语言 数据结构合并有序顺序表

请大神帮忙看看为什么运行出来后面会有一串奇怪的数
#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 if (la->elem[i]>lb->elem[j])
{
lc->elem[k]=lb->elem[j];
j++;
k++;
}
else {
lc->elem[k]=lb->elem[j];
i++;
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()
{
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);
return(0);
}

1个回答

caozhy
caozhy   Ds   Rxr 2016.09.26 00:17
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言实现合并两个有序(从小到大)顺序表为一个顺序表
#include<stdio.h> #include<malloc.h> typedef int ElemType; typedef int status; # define LIST_INIT_SIZE 100 # define OK 1 # define OVERFLOW -1 typedef struct{ ElemType *elem; int length; in
两个有序顺序表合并
这是在做数据结构考研题目时遇到的题。 在这里记录一下,其中有上网参考大家的代码。 题目如下: /* 题目:编写算法,将两个非递减有序顺序表A和B合成一个新的非递减有序顺序表C。 已知顺序表A和B的元素个数分别为m,n。其中顺序表采用动态分配内存空间,其定义如下: typedef struct{ ElemType *elem; //存储空间基址 int length;     //当
【实验】两个有序顺序表的合并
数据结构上机实验。 实验要求: 写出——>> Status initlist(sqlist &L) Status listinsert( sqlist &L,  int i,  int e ) Status listindele( sqlist &L,  int i,  int &e ) Status listinprint( sqlist L) void MergeLi
【数据结构】-线性表-顺序表-1324: 算法2-2:有序线性表的有序合并
1324: 算法2-2:有序线性表的有序合并题目地址点击题目描述已知线性表 LA 和 LB 中的数据元素按值非递减有序排列,现要求将 LA 和 LB 归并为一个新的线性表 LC, 且 LC 中的数据元素仍然按值非递减有序排列。例如,设LA=(3,5,8,11) ,LB=(2,6,8,9,11,15,20) 则 LC=(2,3,6,6,8,8,9,11,11,15,20) 算法描述如下: 从上述
顺序表的合并
顺序表的合并的前提是合并的两个顺序表都要有序,你可以升序也可以降序,合并后的顺序表的是否为升序或降序就看内部代码的判断,当你输入完两个顺序表的时候,也可以调用冒泡法排序的函数,或者你先初始化两个有序的顺序表。本篇就直接输入有序的顺序表,具体的实现过程代码中有解释。 /* 顺序表的合并要满足两个顺序表都是有序的!! */ #include #define N 50 int A[N]=
合并两个有序顺序表
合并两个有序的顺序表,使用语言是C++,数据结构里的一个基础的算法。
两个有序顺序表的合并
两个有序顺序表的合并 C++ 无技术含量 数据结构题目
数据结构之两个有序表的合并
问题:将两个有序顺序表合并成一个有序顺序表。算法思想:不断取两个顺序表表头,比较大小,将小者存入新的有序顺序表,直至其中一个表比较完毕,将另一个剩余的表全部存入新的顺序表。#include<stdio.h> #include<stdlib.h> #include<stdbool.h> #define Maxsize 50 int flag=1; //利用变量构造
c语言,用顺序表的原理合并两个集合
#include #include #define  N 4 #define  M 5 void display(int num[],int count)   {       int i;       for(i=0;i     {            printf("%d ",num[i]);       }       printf("\n");   }   v
两个有序顺序表合并为有序表 C++实现
两个有序顺序表合并为有序顺序表 C++实现 顺序表 C++ C 数据结构 顺序表的排序