当前位置:   article > 正文

单链表C语言代码实现_c语言单链表程序代码

c语言单链表程序代码

一、代码

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. typedef int ElemType;
  4. typedef struct Lnode{
  5. ElemType data;
  6. struct Lnode *next;
  7. }Lnode,*LinkList;
  8. void create(LinkList &L);
  9. void insert(LinkList &L);
  10. void outlin(LinkList &L);
  11. void deleter(LinkList &L);
  12. int main(){
  13. int cord;
  14. LinkList L;
  15. LinkList p;
  16. do
  17. {
  18. printf("\n 主菜单\n");
  19. printf(" 1 建立单链表\n");
  20. printf(" 2 插入一个元素\n");
  21. printf(" 3 删除一个元素\n");
  22. printf(" 4 结束程序\n");
  23. printf("-------------------------\n");
  24. printf("请输入您的选择(1,2,3,4) :");
  25. scanf("%d",&cord);
  26. switch(cord)
  27. {
  28. case 1:
  29. {
  30. create(L);
  31. outlin(L);
  32. }break;
  33. case 2:
  34. {
  35. insert(L);
  36. outlin(L);
  37. }break;
  38. case 3:
  39. {
  40. deleter(L);
  41. outlin(L);
  42. }break;
  43. case 4:exit(0);
  44. }
  45. }while(cord<=4);
  46. return 0;
  47. }
  48. void create(LinkList &L){
  49. int n,i;
  50. Lnode *r,*p;
  51. L=(LinkList)malloc(sizeof(Lnode));
  52. L->next=NULL;
  53. r=L;
  54. printf("\n 请输入表长n=");
  55. scanf("%d",&n);
  56. printf("\n 请输入表数据:\n");
  57. for(i=0;i<n;-++i){
  58. p=(LinkList)malloc(sizeof(Lnode));
  59. printf("data%d=",i+1);
  60. scanf("%d",&p->data);
  61. p->next=NULL;
  62. r->next=p;
  63. r=p;
  64. }
  65. printf("\n表创建成功\n");system("pause");
  66. }
  67. void insert(LinkList &L){
  68. int i,j=0,data;
  69. Lnode *p,*s;
  70. p=L;
  71. printf("\n 请输入插入的位置 i:");
  72. scanf("%d",&i);
  73. printf("\n 插入的数据 data:");
  74. scanf("%d",&data);
  75. while(p&&j<i-1){
  76. p=p->next;++j;
  77. }
  78. s=(LinkList)malloc(sizeof(Lnode));
  79. s->data=data;
  80. s->next=p->next;
  81. p->next=s;
  82. printf("\n插入成功\n");system("pause");
  83. }
  84. void deleter(LinkList &L){
  85. int i,j=0,data;
  86. Lnode *p,*q;
  87. p=L;
  88. printf("\n 请输入删除的位置 i:");
  89. scanf("%d",&i);
  90. while(p->next&&j<i-1){
  91. p=p->next;
  92. ++j;
  93. }
  94. q=p->next;
  95. p->next=q->next;
  96. data=q->data;
  97. delete q;
  98. printf("\n删除成功\n");
  99. printf("\n删除的数据为%d上的数据:%d\n",i,data);system("pause");
  100. }
  101. void outlin(LinkList &L)
  102. {
  103. system("cls");
  104. int i=1;
  105. Lnode *p;
  106. p=L;
  107. printf("表信息:\n");
  108. printf("位置 元素值 物理地址");
  109. while(p->next){
  110. p=p->next;
  111. printf("\n%2d %6d %15d",i++,p->data,p);
  112. }
  113. printf("\n-------------------------");
  114. }

二、执行效果

 

 

 

 

 

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

闽ICP备14008679号