zoukankan      html  css  js  c++  java
  • 实验1——顺序表的合并

    Description

    假定两个顺序表的数据已经按照从小到大的顺序排列,实现两个顺序表的合并

    Input

    第一行输入n表示顺序表A包含的·n个数据

    第二行输入n个数据,数据是小于100的正整数

    第三行输入m表示顺序表B包含的·n个数据

    第二行输入m个数据,数据是小于100的正整数

    Output

    输出合并后的顺序表内的所有数据,数据之间用空格隔开

    Sample Input

    3
    11 33 55
    4
    22 44 66 88
    

    Sample Output

    11 22 33 44 55 66 88 
    
     
    #include <stdio.h> 
    #include <malloc.h> 
    typedef struct 
    { 
        int *elem; 
        int length;  
    }SqList; 
    
    int InitList_sq(SqList &A, int n)    
    { 
        A.elem=(int *)malloc(n*sizeof(int)); 
        if(!A.elem) 
        return 0; 
        A.length=n; 
        return 1; 
    } 
    
    int Load_Sq(SqList &L) 
    { 
        int i; 
        if(L.length == 0) 
            return 0;
        else 
        { 
            for(i=0;i <L.length;i++) 
            printf("%d ",L.elem[i]); 
        } 
        printf("\n"); 
        return 1; 
    } 
    SqList MergeList_Sq(SqList &A,SqList &B, SqList &C) 
    { 
        int *pa=A.elem; 
        int *pb=B.elem; 
        C.length=A.length + B.length; 
        int *pc=C.elem=(int * )malloc(C.length * sizeof(int));  
        int *pa_last=A.elem + A.length; 
        int *pb_last=B.elem + B.length; 
    
        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++; 
        return C; 
    } 
    
    int main() 
    { 
        SqList A, B, C;
        int na,nb; 
        scanf("%d",&na);
        InitList_sq(A,na);
        
        for(int i=0;i<na;i++) 
        { 
            scanf("%d",&A.elem[i]); 
        }  
        scanf("%d",&nb); 
        InitList_sq(B,nb);
    
        for(int j=0;j<nb;j++) 
        { 
            scanf("%d",&B.elem[j]); 
        }    
        MergeList_Sq(A,B,C); 
        Load_Sq(C);
        return 0; 
    } 
    
    
  • 相关阅读:
    206#反转链表
    19#删除链表的倒数第N个节点
    142#环形链表2
    209#长度最小的子数组
    54#螺旋矩阵
    498#对角线遍历
    Github下载文件慢试试这款工具吧
    Bing每日壁纸API
    3.新手建站教程系列之认识WordPress和第一篇文章
    2.新手建站教程系列之利用本地环境搭建网站
  • 原文地址:https://www.cnblogs.com/suiyun/p/2690842.html
Copyright © 2011-2022 走看看