数据结构 线性表 单链表的归并

举报
悦来客栈的老板 发表于 2020/12/29 23:48:35 2020/12/29
【摘要】 #include <stdio.h>#include <stdlib.h>#include <iostream.h> #define OK 1#define ERROR 0#define OVERFLOW -2 typedef int ElemType; typedef struct LNode{ ElemType data; struct LNode *next;}LNod...

  
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <iostream.h>
  4. #define OK 1
  5. #define ERROR 0
  6. #define OVERFLOW -2
  7. typedef int ElemType;
  8. typedef struct LNode
  9. {
  10. ElemType data;
  11. struct LNode *next;
  12. }LNode, *LinkList;
  13. void CreateList_L(LinkList &L, int n)
  14. {
  15. int i;
  16. LinkList p,q;
  17. L = (LinkList) malloc (sizeof(LNode));
  18. if (!L)
  19. {
  20. exit(OVERFLOW);
  21. }
  22. p = L;
  23. for (i=0; i<n; i++)
  24. {
  25. q = (LinkList) malloc (sizeof(LNode));
  26. if (!q)
  27. {
  28. exit(OVERFLOW);
  29. }
  30. scanf("%d",&q->data);
  31. p->next = q;
  32. p = q;
  33. }
  34. p->next = NULL;
  35. }
  36. void Display(LinkList L)
  37. {
  38. LinkList p = L->next;
  39. while (p != NULL)
  40. {
  41. printf("%d ",p->data);
  42. p = p->next;
  43. }
  44. printf("\n");
  45. }
  46. void MergeList_L(LinkList &La, LinkList &Lb,LinkList &Lc)
  47. {
  48. LinkList pa,pb,pc;
  49. pa = La->next;
  50. pb = Lb->next ;
  51. Lc = pc = La;
  52. while (pa && pb)
  53. {
  54. if (pa->data <= pb->data )
  55. {
  56. pc->next = pa;
  57. pc = pa;
  58. pa = pa->next ;
  59. }
  60. else
  61. {
  62. pc->next = pb;
  63. pc = pb;
  64. pb = pb->next ;
  65. }
  66. }
  67. pc->next = pa?pa:pb;
  68. free(Lb);
  69. }
  70. int main()
  71. {
  72. int n;
  73. LinkList La,Lb,Lc;
  74. printf("请输入您要创建单链表La的元素的个数:");
  75. scanf("%d",&n);
  76. CreateList_L(La,n);
  77. printf("请输入您要创建单链表Lb的元素的个数:");
  78. scanf("%d",&n);
  79. CreateList_L(Lb,n);
  80. printf("两个链表归并后的链表是:");
  81. MergeList_L(La,Lb,Lc);
  82. Display(Lc);
  83. return 0;
  84. }

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/17078425

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。