zoukankan      html  css  js  c++  java
  • 链表习题(7)-将两个递增单链表合并成一个递减单链表

     1 /*将两个递增单链表合并成一个递减单链表*/
     2 /*
     3     算法思想:两个链表已经按元素值递增次序排序,将其合并时,均从第一个结点起进行比较,将较小的
     4     结点链入链表中,同时后移工作指针。由于结果链表是递减的,故使用头插法建立新链表。比较结束后,
     5     可能会有一个链表非空,此时用头插法将剩下的结点依次插入新链表中即可。
     6 */
     7 void Union_List(LinkList& La,LinkList& Lb)
     8 {
     9     LNode *r, *pa = La->next, *pb = Lb->next;    //pa,pb分别是La,Lb的工作指针
    10     La->next = NULL;        //将La作为结果链表的头指针
    11     while (pa&&pb)
    12     {
    13         if (pa->data <= pb->data)
    14         {
    15             r = pa->next;        //r暂存pa的后继结点指针
    16             pa->next = La->next;        //头插法插入pa所指结点
    17             La->next = pa;
    18             pa = r;
    19         }
    20         else
    21         {
    22             r = pb->next;
    23             pb->next = La->next;
    24             La->next = pb;
    25             pb = r;
    26         }
    27         while (pa)        //处理剩下的结点
    28         {
    29             r = pa->next;        
    30             pa->next = La->next;    
    31             La->next = pa;
    32             pa = r;
    33         }
    34         while (pb)        
    35         {
    36             r = pb->next;
    37             pb->next = La->next;
    38             La->next = pb;
    39             pb = r;
    40         }
    41     }
    42     free(Lb);
    43 }
  • 相关阅读:
    人生本来就是一种修行
    Go的一些趣味题库
    PHP系统常被挂马的代码
    PHP加密字符串函数(解密)
    photoshop
    截图
    用手机作为摄像头
    IM 学习记录
    编译 学习过程
    过程流水记录-编译Lua srlua使用iup-完结
  • 原文地址:https://www.cnblogs.com/KBryant/p/11650007.html
Copyright © 2011-2022 走看看