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不属于序列)。...
  • henuni
  • henuni
  • 2017年06月09日 09:59
  • 213

实验项目 2-11. 两个有序链表序列的合并(15)

2-11. 两个有序链表序列的合并(15) 时间限制 500 ms 内存限制 80000 kB 代码长度限制 8000 B 判题程序 ...
  • YJX_xx
  • YJX_xx
  • 2014年10月23日 19:28
  • 856

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

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

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

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

PAT数据结构_02-线性结构1 两个有序链表序列的合并 (15分)

问题地址: https://pta.patest.cn/pta/test/1342/exam/3/question/19208 Notes:  1. 总是先malloc 一个Node,初始化一个l...

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

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

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

c++

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

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

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

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

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

2-11. 两个有序链表序列的合并 时间限制 500 ms 内存限制 80000 kB 代码长度限制 8000 B 判题程序 Sta...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2-11. 两个有序链表序列的合并(15):链表数据结构基础练习
举报原因:
原因补充:

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