码迷,mamicode.com
首页 > 其他好文 > 详细

合并两个排序的链表

时间:2014-05-26 03:36:55      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:数据结构   算法   

很不习惯作者在书中“鲁棒性”这个叫法,不伦不类,直接称健壮性多好,简单明了。

#include <iostream>
using namespace std;
struct Node{
    int data;
    Node* next;
};

class List{
private:
    int N;
public:
    Node* first;
    List(){
        N=0;
        first=NULL;
        last=NULL;
    }
    int size() { return N; }
    bool isEmpty() { return first==NULL; }
    //从链表尾插入
    void append(int val){
        Node *node=new Node();
        node->data=val;
        node->next=NULL;

        if(isEmpty()) first=node;
        else{
            Node* p=first;
            while(p->next) p=p->next;
            p->next=node;
        }
        N++;
    }
    //从链表头插入
    void push(int val){
        Node* oldfirst=first;
        first=new Node();
        first->data=val;
        first->next=oldfirst;
        N++;
    }

    void print(){
        Node* p=first;
        while(p){
            cout<<p->data<<" ";
            p=p->next;
        }
        cout<<endl;
    }
};
Node* Merge(Node *f1,Node *f2){
    if( f1==NULL) return f2;
    if( f2==NULL) return f1;

    Node* mfirst=NULL;
    if(f1->data<=f2->data){
        mfirst=f1;
        mfirst->next=Merge(f1->next,f2);
    }
    else{
        mfirst=f2;
        mfirst->next=Merge(f1,f2->next);
    }

    return mfirst;
}

int main(){
    List *list1=new List();
    List *list2=new List();
    /*for(int i=10;i>=1;i--){
        if(i%2==0){
            list1->push(i);
        }
        else{
            list2->push(i);
        }
    }*/
    for(int i=1;i<=10;i++){
        if(i%2==0){
            list1->append(i);
        }
        else list2->append(i);
    }
    list1->print();
    list2->print();

    Node *p=Merge(list1->first,list2->first);
    while(p){
        cout<<p->data<<" ";
        p=p->next;
    }
    cout<<endl;
    return 0;
}


合并两个排序的链表,布布扣,bubuko.com

合并两个排序的链表

标签:数据结构   算法   

原文地址:http://blog.csdn.net/dutsoft/article/details/26744967

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!