9度_タイトル1519:2つのソートされたチェーンテーブルをマージ

2536 ワード

//頭が悪いときはコードを書かないほうがいい
タイトルの説明:2つの単調に増加するチェーンテーブルを入力して、2つのチェーンテーブルの合成後のチェーンテーブルを出力して、もちろん私たちは合成後のチェーンテーブルが単調で減少しない規則を満たす必要があります.
(hint:チェーンテーブルは必ず使用してください.)
入力:
入力には複数のテストサンプルが含まれ、入力はEOFで終了します.
各試験例について、入力される第1の動作の2つの整数nおよびm(0<=n<=1000、0<=m<=1000):nは、入力される第1のチェーンテーブルの要素の個数を表し、mは、入力される第2のチェーンテーブルの要素の個数を表す.
次の行は、チェーンテーブル1の要素を表すn個の数t(1<=t<=1000000)を含む.次の行には、m個の要素、s(1<=t<=1000000)が含まれます.
出力:
各テストケースに対応し、
結果が出たら、対応するチェーンテーブルを出力します.そうでなければNULLを出力します.
サンプル入力:
5 2
1 3 5 7 9
2 4
0 0
サンプル出力:
1 2 3 4 5 7 9
NULL
#include <iostream>
#include<cstdlib>
using namespace std;
 
typedef struct LNode
{
    struct LNode *next;
    int data;
}*Linklist;
Linklist CreateList(Linklist list,int n)
{
    int num=0;
    Linklist p=NULL,q=NULL;
    p=(Linklist)malloc(sizeof(Linklist *));
    p->next=NULL;
    list=p;
    for(int i=0;i<n;i++)
    {
        q=(Linklist)malloc(sizeof(Linklist *));
        cin>>num;
        q->data=num;
        q->next=NULL;
        p->next=q;
        p=q;
    }
    return list;
}
Linklist MergeList(Linklist list1,Linklist list2)
{
    Linklist list3=(Linklist)malloc(sizeof(Linklist *));
    list3->next=NULL;
    Linklist r=list3;
    Linklist p=list1->next,q=list2->next;
    while(p&&q)
    {
        if(p->data<q->data)
        {
            r->next=p;
            r=p;
            p=p->next;
        }else
        {
            r->next=q;
            r=q;
            q=q->next;
        }
    }
    if(p)
        r->next=p;
    if(q)
        r->next=q;
    return list3;
}
void TraveseList(Linklist list)
{
    Linklist p=list->next;
    if(p)
    {
        cout<<p->data;
        p=p->next;
    }
    else
    {cout<<"NULL"<<endl;return ;}
    while(p)
    {
        cout<<' '<<p->data;
        p=p->next;
    }
    cout<<endl;
}
int main()
{
    int n,m;
    while(cin>>n>>m)
    {
        Linklist list1=NULL,list2=NULL;
        list1=CreateList(list1,n);
        list2=CreateList(list2,m);
        list1=MergeList(list1,list2);
        TraveseList(list1);
    }
    return 0;
}
 
/**************************************************************
    Problem: 1519
    User: hndxztf
    Language: C++
    Result: Accepted
    Time:400 ms
    Memory:4820 kb
****************************************************************/