zoukankan      html  css  js  c++  java
  • 归并两路有序链表

    /*
    *归并两路链表
    */
    template<typename elemType>
    Node<elemType>* Mylist<elemType>::merge(Node<elemType> *first,Node<elemType> *second)
    {//注意到这里链表first,second已经是顺序的了
      
    Node<elemType> *resList=new Node<elemType>(); //开辟一个临时头节点 
    Node<elemType> *current; 
    current=resList; 
    while(first!=NULL && second!=NULL)
    {//某一条链表空时结束 
    if((*cmp )(first->data,second->data))
    {//根据函数指针来确定排序方式 
    current->next=first; 
    current=current->next; 
    first=first->next; 
    }
    else
    { 
    current->next=second; 
    current=current->next; 
    second=second->next; 
    } 
    }
    
    //把还剩下不空的链表继续接到临时头结点所在的链表
    while(first!=NULL)
    { 
    current->next=first; 
    current=current->next; 
    first=first->next; 
    } 
    while(second!=NULL)
    { 
    current->next=second; 
    current=current->next; 
    second=second->next; 
    } 
    current = resList->next;
    delete resList;//记得释放头结点
    return current; 
     }
  • 相关阅读:
    第四周编程总结
    第三周编程总结
    第二周编程总结
    第一周编程总结
    2019年寒假作业3
    2019年寒假作业2
    2019年寒假作业1
    第七周编程总结
    第六周编程总结
    第五周编程总结
  • 原文地址:https://www.cnblogs.com/pigerhan/p/3544800.html
Copyright © 2011-2022 走看看