美文网首页
线性表-顺序表合并

线性表-顺序表合并

作者: Co_zy | 来源:发表于2018-07-17 14:47 被阅读0次

线性表合并

运行时限: 1000 ms 单次运行时限: 1000 ms 内存限制: 64 MB
总提交: 365次 通过: 105次

题目描述

将两个有序表A和B合并成一个有序表C

程序输入说明

第1行:有序表A
第2行:有序表B
(A、B中元素均为整数,且元素个数均不超过1000)

程序输出说明

合并后的有序表

程序输入样例

可见格式 带空格和换行符的格式 带空格和换行符的格式说明
1 3 5
3 4 7 9

程序输出样例

Original Transformed 带空格和换行符的格式说明
1 3 3 4 5 7 9
提示

如何读取一行数据?

参考:while(scanf("%d%c",&b[k++],&ch)==2 && ch!='\n');

评判系统的C较低,不支持C99
反复出现了runtime error的问题,原因是数组开的太小了,题目要求1000,我只开了100

#include <stdio.h>
#include <stdlib.h>
# define LIST_INIT_SIZE 1005

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

void creat(List *l)
{
    char ch;
    int i = 0;
    l->elem = (int *)malloc(LIST_INIT_SIZE*sizeof(int));
    if(!l->elem)
        exit(0);
    while(scanf("%d%c",&l->elem[i++],&ch)==2 && ch!='\n');
    l->length = i;
}
void display(List *l1,List *l2,List *l3)
{
    int i=0,j,a=0,b=0;
    int m=l1->length;
    int n = l2->length;
    while(a<m && b<n)
    {
        if(l1->elem[a]<l2->elem[b])
            l3->elem[i++]=l1->elem[a++];
        else
            l3->elem[i++]=l2->elem[b++];
    }
    if(a==m)
    {
        for(j=b; j<n; j++)
            l3->elem[i++]=l2->elem[j];
    }
    else
    {
        for(j=a; j<m; j++)
            l3->elem[i++]=l1->elem[j];
    }
}
int main()
{
    List l1,l2,l3;
    int i;
    creat(&l1);
    creat(&l2);
    l3.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
    display(&l1,&l2,&l3);
    int m = l1.length;
    int n = l2.length;
    for(i=0; i<m+n-1; i++)
        printf("%d  ",l3.elem[i]);
    printf("%d  ",l3.elem[m+n-1]);
    return 0;

}

相关文章

  • 数据结构课程 第四周 线性表、链式表的比较和应用

    顺序表和链式表的比较 线性表的应用 线性表的合并 有序表的合并 有序表的合并 用顺序表实现 有序表的合并 用链式表...

  • 数据结构之线性表

    1、线性表-顺序表线性表-顺序表

  • 线性表-顺序表合并

    线性表合并 运行时限: 1000 ms 单次运行时限: 1000 ms 内存限制: 64 MB总提交: 3...

  • 顺序表和链表的区别

    参考:线性表和链表的区别 注:参考文中的‘线性表’准确的说应该是’顺序表‘,链表与顺序表都是线性表。 顺序表:顺序...

  • 数据结构03-线性表之顺序表

    第三章 线性表之顺序表 第三章 线性表之顺序表一、什么是线性表?1> 概念2> 线性表的基本操作二、线性表的顺序存...

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

  • 数据结构-双向链表

    (一)什么是链表? 链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序...

  • 记录十一 线性表的链式存储结构

    前言 在前面记录八 线性表的顺序存储结构和记录九 线性表的顺序存储结构扩展(动态顺序表)中我们了解到线性表的顺序存...

  • 线性表及应用

    线性表 “线性表(List):零个或多个数据元素的有限序列。” 线性表的顺序存储结构 线性表的顺序存储结构,指的是...

  • 线性链表

    线性链表 线性表的顺序存储结构:顺序表线性表的链式存储结构:线性链表 线性表的链式存储所占存储空间大于顺序存储。 ...

网友评论

      本文标题:线性表-顺序表合并

      本文链接:https://www.haomeiwen.com/subject/hiawpftx.html