2-11. 两个有序链表序列的合并(15):链表数据结构基础练习

原创 2015年07月10日 19:04:26
#include<iostream>
using namespace std;

typedef struct Node
{
        int data;
        struct Node * next;
}Node, *LinkList;

int main()
{
        LinkList List_1, List_2;
        int num;

        List_1 = new Node;
        List_1->next = NULL;

        List_2 = new Node;
        List_2->next = NULL;

        Node *T = List_1;

        bool flag =1;
        while( flag ){
                cin>>num;
                if( num!=-1 )
                {
                        Node *temp = new Node;
                        temp->data = num;
                        T->next = temp;
                        T = temp;
                }
                else
                    {
                            flag =0;
                            T->next = NULL;
                    }
        }

        flag = 1;
        T = List_2;
        while( flag )
        {
                cin>>num;
                if( num!=-1 )
                {
                        Node *temp = new Node;
                        temp->data = num;
                        T->next = temp;
                        T = temp;
                }
                else
                    {
                            flag =0;
                            T->next = NULL;
                    }
        }

        if( List_1->next==NULL && List_2->next==NULL )
        {
                cout<<"NULL"<<endl;
                return 0;
        }

        Node *P1, *P2;
        P1 = List_1->next;
        P2 = List_2->next;

        bool first = true;
        while( P1!=NULL && P2 != NULL )
                if( P1->data <= P2->data )
                {
                    if( first ){
                        cout<<P1->data;
                        first = false;
                    }
                    else
                            cout<<" "<<P1->data;
                        P1 = P1->next;
                }
                else
                {
                    if( first ){
                        cout<<P2->data;
                        first = false;
                    }
                    else
                            cout<<" "<<P2->data;
                        P2 = P2->next;
                }

        if( P1 )
            while( P1 )
            {
                    cout<<" "<<P1->data;
                    P1=P1->next;
            }
        if( P2 )
            while( P2 )
            {
                    cout<<" "<<P2->data;
                    P2=P2->next;
            }
        return  0;
}

版权声明:

相关文章推荐

《数据结构学习与实验指导》2-11:两个有序链表序列的合并

实验内容:已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集,新非降序链表S3。 输入说明:输入分2行,分别在每行给出由若干个正整数构成的非降序序列,用-1表示结尾(-1不属于序列)。...

2-11. 两个有序链表序列的合并(15) (ZJU_PAT 链表 | vector)

2-11. 两个有序链表序列的合并(15) (ZJU_PAT 链表 | vector)

数据结构-线性结构-两个有序链表序列的合并

本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typ...

[数据结构]02-线性结构1 两个有序链表序列的合并

本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typ...

<数据结构学习与实验指导>2-10海盗分赃/2-11两个有序链表序列的合并

c++

数据结构—链表— 两个有序链表序列的合并

02-线性结构1 两个有序链表序列的合并   (15分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List...

浙江大学PAT上机题解析之2-11. 两个有序链表序列的合并

浙江大学 PAT 有序链表合并效率问题

PAT 2-11 两个有序链表序列的合并(C语言实现)

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集新非降序链表S3。 输入格式说明: 输入分2行,分别在每行给出由若干个正整数构成的非降序序列,用-1表示序列的结尾(-1不属...

浙大PAT 2-11. 两个有序链表序列的合并 (解题思路)

2-11. 两个有序链表序列的合并 时间限制 500 ms 内存限制 80000 kB 代码长度限制 8000 B 判题程序 Sta...

5-15 两个有序链表序列的合并

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集新非降序链表S3。 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用-1−1表示序列的结尾(-1−1不属于这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)