高手帮帮忙:已知线性表la和lb中的数据元素按值非递减有序排列,现要求将la和lb归并为一个新的线性表lc,
答案:1 悬赏:10 手机版
解决时间 2021-03-28 16:41
- 提问者网友:半生酒醒
- 2021-03-27 22:41
高手帮帮忙:已知线性表la和lb中的数据元素按值非递减有序排列,现要求将la和lb归并为一个新的线性表lc,
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-03-27 22:47
你可以试着再自己写一个更好的。
#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);
}
#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(i
{
if(la->elem[i]
{
lc->elem[k]=la->elem[i];
i++;
k++;
}
else
{
lc->elem[k]=lb->elem[j];
j++;
k++;
}
}
while(i
{
lc->elem[k]=la->elem[i];
i++;
k++;
}
while(j
{
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;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);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯