数据结构 静态链表的应用

举报
悦来客栈的老板 发表于 2020/12/30 00:35:24 2020/12/30
【摘要】 #include <stdio.h>#include <stdlib.h>#include <iostream.h> #define MAXSIZE 100#define OK 1#define ERROR 0#define OVERFLOW -2 typedef char ElemType; typedef struct{ Ele...

  
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <iostream.h>
  4. #define MAXSIZE 100
  5. #define OK 1
  6. #define ERROR 0
  7. #define OVERFLOW -2
  8. typedef char ElemType;
  9. typedef struct
  10. {
  11. ElemType data;
  12. int cur;
  13. }component, SLinkList[MAXSIZE];
  14. void InitSpace_SL(SLinkList &space)
  15. {
  16. int i;
  17. for (i=0; i<MAXSIZE-1; i++)
  18. {
  19. space[i].cur = i+1;
  20. }
  21. space[MAXSIZE-1].cur = 0;
  22. }
  23. int Malloc_SL(SLinkList &space)
  24. {
  25. int i;
  26. i = space[0].cur;
  27. if (space[0].cur)
  28. {
  29. space[0].cur = space[i].cur;
  30. }
  31. return i;
  32. }
  33. void Free_SL(SLinkList &space, int k)
  34. {
  35. space[k].cur = space[0].cur;
  36. space[0].cur = k;
  37. }
  38. void difference(SLinkList &space, int &S)
  39. {
  40. int r,k,i,j,m,n,p;
  41. char b;
  42. InitSpace_SL(space);
  43. S = Malloc_SL(space);
  44. r = S;
  45. scanf("%d%d",&m,&n);
  46. for (j=1; j<=m; ++j)
  47. {
  48. i = Malloc_SL(space);
  49. scanf("%d",&space[i].data);
  50. space[r].cur = i;
  51. r = i;
  52. }
  53. space[r].cur = 0;
  54. for (j=1; j<=n; ++j)
  55. {
  56. scanf("%d",&b);
  57. p = S;
  58. k = space[S].cur;
  59. while (k != space[r].cur && space[k].data != b)
  60. {
  61. p = k;
  62. k = space[k].cur ;
  63. }
  64. if (k == space[r].cur )
  65. {
  66. i = Malloc_SL(space);
  67. space[i].data = b;
  68. space[i].cur = space[r].cur ;
  69. space[r].cur = i;
  70. }
  71. else
  72. {
  73. space[p].cur = space[k].cur ;
  74. Free_SL(space,k);
  75. if (r == k)
  76. {
  77. r = p;
  78. }
  79. }
  80. }
  81. }
  82. void print_SL(SLinkList space)
  83. {
  84. int i = space[1].cur;
  85. while (i)
  86. {
  87. printf("%d ",space[i].data);
  88. i = space[i].cur;
  89. }
  90. printf("\n");
  91. }
  92. int main()
  93. {
  94. SLinkList space;
  95. int S;
  96. difference(space, S);
  97. print_SL(space);
  98. return 0;
  99. }

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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