【第22期】观点:IT 行业加班,到底有没有价值?

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不属于序列)。...

[C++]数据结构:有序链表SortedChain的基本实现与操作

#include&lt;iostream&gt; using namespace std; template&lt;class E,class K&gt; class SortedChainNode{ public: E data; Sort...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

数据结构和算法设计专题之---判断两个链表是否相交并找出交点

题目: 一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。 <p style="color

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

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

数据结构和算法设计专题之---判断两个链表是否相交并找出交点

题目: 一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。 <p style="color
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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