鱼C论坛

 找回密码
 立即注册
查看: 3261|回复: 0

[学习笔记] 单链表LA=(a1,a2,…,am)和LB=(b1,b2,…,bn),编写程序按以下规则将它们合并...

[复制链接]
发表于 2021-5-18 18:12:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. /*

  2. 开发者:慢蜗牛 开发时间:2020.6.11

  3. 程序功能:合并链表

  4. */

  5. #include<stdio.h>
  6. #include<malloc.h>
  7. #include<stdlib.h>
  8. #define LEN sizeof(struct L)

  9. void print(struct L* head);
  10. void insert(struct L* p1, struct L* p2);

  11. struct L//创建结构体
  12. {
  13. int a;

  14. struct L* next;
  15. };

  16. int n;

  17. struct L* creat()//建立链表
  18. {
  19. struct L* head;

  20. struct L* p1, * p2;

  21. n = 0;

  22. p1 = p2 = (struct L*)malloc(LEN);

  23. scanf_s("%d", &p1->a);

  24. head = NULL;

  25. while (p1->a != -1)
  26. {
  27.     n = n + 1;

  28.     if (n == 1) head = p1;

  29.     else p2->next = p1;

  30.     p2 = p1;

  31.     p1 = (struct L*)malloc(LEN);

  32.     scanf_s("%d", &p1->a);
  33. }

  34. p2->next = NULL;

  35. return(head);
  36. }

  37. void print(struct L* head)//输出具有头结点的列表
  38. {
  39. struct L* p;

  40. p = head->next;

  41. if (head != NULL)
  42.     do
  43.     {
  44.         printf("--%d ", p->a);

  45.         p = p->next;
  46.     } while (p != NULL);
  47. }

  48. void insert(struct L* p1, struct L* p2)//从小到大合并递增链表
  49. {
  50. struct L* LC, * r;

  51. LC = (struct L*)malloc(LEN);

  52. LC->next = p1;

  53. r = LC;

  54. while (p1 && p2)
  55. {
  56.     if (p1->a <= p2->a)
  57.     {
  58.         r->next = p1;

  59.         r = p1;

  60.         p1 = p1->next;
  61.     }

  62.     else
  63.     {
  64.         r->next = p2;

  65.         r = p2;
  66.    
  67.         p2 = p2->next;
  68.     }

  69. }
  70. if (p1 == NULL) r->next = p2;

  71. else r->next = p1;

  72. print(LC);
  73. }

  74. void main()//主函数
  75. {
  76. struct L* LA, * LB;

  77. printf("请输入LA的数据:");

  78. LA = creat();

  79. printf("请输入LB的数据:");

  80. LB = creat();

  81. printf("LC=");

  82. insert(LA, LB);
  83. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 15:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表