zoukankan      html  css  js  c++  java
  • 合并两个排好序的链表(c++)

    #include<iostream>
    
    struct node{
        int payload;
        node* next;
        node(int payload){this->payload=payload;next=nullptr;}
    };
    
    void bianli(node* head){
      node* iterator = head;
      while(iterator){
        std::cout << iterator->payload << " ";
        iterator = iterator->next;
      }
      std::cout<<" "<<std::endl;
    }
    
    class linkedlist{
        node* head,*tail;
    public:
        linkedlist():head(nullptr),tail(nullptr){};
        void push_back(int value){
            if(empty()){
                head = tail = new node(value);
            }else{
                tail->next = new node(value);
                tail = tail->next;
            }
        }
    
        int front(){
            if(empty()){
                throw "The list is empty";
            }
            return head->payload;
        }
        void pop_front(){
            if(empty()){
                throw "The list is empty";
            }
            node* first_node = head;
            head = head->next;
            delete first_node;
        }
        bool empty(){
            return head==nullptr;
        }
        void output(){
            node* iterator = head;
            while(iterator){
                std::cout << iterator->payload << " ";
                iterator = iterator->next;
            }
            std::cout << std::endl;
        }
    };
    
    linkedlist merge(linkedlist a,linkedlist b){
        linkedlist result ;
        while(!a.empty() || !b.empty()){
            if(a.empty()){
                result.push_back(b.front());
                b.pop_front();
            }else if(b.empty()){
                result.push_back(a.front());
                a.pop_front();
            }else if(a.front() > b.front()){
                result.push_back(b.front());
                b.pop_front();
            }else{
                result.push_back(a.front());
                a.pop_front();
            }
        }
        return result;
    }
    
    int main(){
    
        linkedlist a,b;
        a.push_back(4);
        a.push_back(7);
        a.push_back(20);
        a.push_back(21);
    
        b.push_back(2);
        b.push_back(3);
        b.push_back(5);
        b.push_back(9);
        b.push_back(29);
        b.push_back(40);
    
        linkedlist result = merge(a,b);
        result.output();
        system("pause");
        return 0;
    }
  • 相关阅读:
    js中cookie的操作
    javascript HTML静态页面传值的四种方法
    更改ligerui源码实现分页样式修改
    javascript Date format(js日期格式化)
    LigerUI用PostGetAjax前后台交互方式的写法
    html中 accept 属性
    jQuery.ajax() 设置 Headers 中的 Accept 内容
    C# 事件(Event)
    C# 委托(Delegate)
    C# 反射(Reflection)
  • 原文地址:https://www.cnblogs.com/zychengzhiit1/p/5795102.html
Copyright © 2011-2022 走看看