zoukankan      html  css  js  c++  java
  • 数据结构练习题――合并表

    描述

    已知va和vb分别为非递减有序线性表,将va和vb进行合并为新的线性表vc,并保持vc仍然非递减有序。

    本题中,线性表元素为整数。线性表的最大长度为1000。

    输入

    输入数据有多组,第一行为测试数据的组数t,接下来为2t行,每一组测试数据有两行:

    第一行的第一个数为va的元素个数n,后面是n个整数,代表va的所有元素

    第二行的第一个数为vb的元素个数m,后面是m个整数,代表vb的所有元素

    输出

    输出合并后的长度以及vc的所有元素

    样例输入

     2
    2 1 2
    2 2 3
    3 1 2 3
    3 4 5 6

    样例输出

     4 1 2 2 3
    6 1 2 3 4 5 6

    提示

    你也可以使用链表来实现,有空也练练吧

    刚开始进入数据结构,要学的还很多,真的很难 ,坚持

    #include <iostream>
    #include <cstring>
    using namespace std;
    int c[2002];
    void xbunion(int a[],int n,int b[],int m)
    {
        int k=0,s=0,h=0;
        while(k<n&&h<m)
        {
            if(a[k]<b[h])
            {
                c[s]=a[k];s++;k++;
            }
            else if(a[k]==b[h])
            {
                c[s]=a[k];c[s+1]=b[h];s+=2;k++;h++;
             }
             else {
                 c[s]=b[h];s++;h++;
             } 
        }
        if(k==n)//说明a数组中的元素都归并到c数组了
        {
            while(h<m)
            {
                c[s]=b[h];s++;h++;
             } 
        }
        if(h==m)//b数组中的元素都归并到c数组了
        {
            while(k<n)
            {
                c[s]=a[k];k++;s++;
            }
        }
        cout<<s;
        for(int i=0;i<s;i++)
        {
            printf(" %d",c[i]);
        }
        cout<<endl;
     } 
    int main()
    {
        int a[1001],b[1001],n,m,t,j,k;
        memset(c,0,sizeof(c)/sizeof(c[0]));
        cin>>t;
        while(t--)
        {
            cin>>n;
            for(int i=0;i<n;i++)
            {
                cin>>a[i];
            }
            cin>>m;
            for(int i=0;i<m;i++)
            {
                cin>>b[i];
            }
            xbunion(a,n,b,m);
         } 
    }
  • 相关阅读:
    写爬虫,怎么可以不会正则呢?
    从 Scrapy 学习模块导入技巧
    博客已搬家至CSDN
    更改JDK默认编码,解决DBeaver乱码问题
    【2020面试】- Java中常见集合的默认大小以及扩容机制
    【2020面试】- CAS机制与自旋锁
    【2020面试】- filter和interceptor的区别
    【20k中级开发】-面试题201117
    【开发笔记】
    RPC 调用和 HTTP 调用的区别
  • 原文地址:https://www.cnblogs.com/andrew3/p/8654961.html
Copyright © 2011-2022 走看看