当前位置:   article > 正文

C++将两个递增链表 合并成 一个递增链表 不占用额外的空间_c++实现两个递减序列链表合并成递增序列链表

c++实现两个递减序列链表合并成递增序列链表
  1. /*create by tyy*/
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5. #define ok 1
  6. #define error -1
  7. #define overflow -2
  8. typedef int status;
  9. typedef int ElemType;
  10. typedef struct LNode {
  11. ElemType data;
  12. LNode *next;
  13. }LNode, *LinkList;
  14. //1.将两个递增有序链表合并成一个有序的递增链表,不占用其他的空间,表中无重复数据
  15. status mergeList(LinkList &la, LinkList &lb, LinkList &lc) {
  16. LinkList pa, pb, pc;
  17. pa = la->next;
  18. pb = lb->next;
  19. lc = pc = la;
  20. while (pa&&pb) {
  21. if (pa->data < pb->data) {
  22. pc->next = pa;
  23. pc = pa;
  24. pa = pa->next;
  25. }
  26. else if (pa->data > pb->data) {
  27. pc->next = pb;
  28. pc = pb;
  29. pb = pb->next;
  30. }
  31. else { //pa->data==pb->data
  32. pc->next = pa;
  33. pc = pa;
  34. pa = pa->next;
  35. pb = pb->next;
  36. }
  37. }
  38. pc->next = pa ? pa : pb;
  39. delete lb;
  40. return ok;
  41. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码吟游诗人/article/detail/62928
推荐阅读
相关标签
  

闽ICP备14008679号