永发信息网

下面这道题请用C语言写出程序

答案:1  悬赏:20  手机版
解决时间 2021-05-03 09:37

已知线性表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,9,11,11,15,20)

c=a  当a<=b时,

c=b   当a>b时。

最佳答案


#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OVERFLOW -2
#define OK 1
#define ERROR 0


typedef struct
{
    int *elem;
    int length;
    int listsize;
}SqList;


void MergeList_Sq(SqList La,SqList Lb,SqList *Lc)
{
    int *pa,*pb,*pc;
    int *pa_last,*pb_last;
    pa=La.elem;
    pb=Lb.elem;
    Lc->listsize=Lc->length=La.length+Lb.length;


    pc=Lc->elem=(int *)malloc(Lc->listsize*sizeof(int));
    if(!Lc->elem)exit(OVERFLOW);
    pa_last=La.elem+La.length-1;
    pb_last=Lb.elem+Lb.length-1;
    while(pa<=pa_last&&pb<=pb_last)
    {
    if(*pa<=*pb) *pc++=*pa++;
    else *pc++=*pb++;
    }
    while(pa<=pa_last)*pc++=*pa++;
    while(pb<=pb_last)*pc++=*pb++;


}
    void InitList_Sq(SqList *L)
{
    L->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
    if(!L->elem)
    printf("Memory allocate failure!!");
    L->length=0;
    L->listsize=LIST_INIT_SIZE;
}


void InputElem_Sq(SqList *L)
{
    int x;
    int i;
    i=0;
    scanf("%d",&x);
    while(x!=0)//
    {
    L->elem[i]=x;
    i++;
    scanf("%d",&x);
    }
    L->length=i;
}
void PrintList_Sq(SqList *L)
{
    int i;
    i=0;
    while(i<L->length)
    {
    printf("%5d",L->elem[i]);
    i++;
    }
    printf("\n");
}
void main()
{
    int i,j;
    SqList q,p,r;


    printf("Please input List LA (0 is end)!\n");
    InitList_Sq (&p);
 InputElem_Sq(&p);


 printf("Please input List LB (0 is end)!\n");
    InitList_Sq (&q);
 InputElem_Sq(&q);


    MergeList_Sq(q,p,&r);
    printf("Output the mergList LC!\n");
    PrintList_Sq(&r);


}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在淘宝上怎么样找卖德尔惠鞋子的网店啊?急
怎样能玩热血进行曲比赛小游戏
胜利洗化怎么去啊,有知道地址的么
谁知道09-10学年度,中小学确切的放假时间?
男人最怕做什么事?
孕妇怎样在家兼职工作?
金鹏A188的手机以后都不能上手机qq了吗?
MSN是什么东西啊?怎么申请呢
我要学室内装修设计专业,请问广东有什么好的
莲花在什么地方啊,我要过去处理事情
求帮标,帮名Treas丶情义,设计“情”字....
离婚是不是一方想离就可以离
42级无时装机械一般穿什么装备 武器
什么是断臂山
小美招募新星怎么操作啊
推荐资讯
恐龙时代有人吗?
关于Flash AS 2.0的问题
翻译、英语段落、急!!!
山东艺术理 专业分186 文化分338 能上一批专
时代联华超市平凉店地址在哪,我要去那里办事
太过在乎、总让自己受伤
沈阳burberry有Week end 的男香么、
谁知道甘肃省公安厅出入境检疫站在哪里?
怎么IE打不开?
谁有悲伤的歌曲啊?多提供几首啊
安徽到西安多少公里,西安到山西长治太行山八
日照市大岭中医正骨医院地址有知道的么?有点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?