当前位置:   article > 正文

创建一个有序单链表(数据结构)_建立一个非递减有序单链表(不少于5个元素结点),输出该链表中重复的元素以及重复次

建立一个非递减有序单链表(不少于5个元素结点),输出该链表中重复的元素以及重复次
  1. //有序单链表
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. struct Node
  6. {
  7. int data;
  8. struct Node *next;
  9. };
  10. //顺序插入
  11. void Insert(Node *p,int n)
  12. {
  13. //利用两个指针
  14. Node *p1=p;//指向头 ,因为这是有序单链表 所以每次插入前都得先从头来
  15. Node *p2=p->next; //指向头节点之后 之后也用它来判断是否位只含有头节点的空链表
  16. Node *s=(Node *)malloc(sizeof(Node));
  17. s->data=n;//写入数据
  18. while(p2&&p2->data>n)
  19. {
  20. p1=p2;
  21. p2=p2->next;//这样同时往后移的话 插入的时候好插入
  22. }
  23. s->next=p2;
  24. p1->next=s;//插入节点
  25. }
  26. //遍历列表
  27. void traversal(Node *p)
  28. {
  29. Node *p3=p->next;//不能从p开始遍历因为p是头节点没存东西
  30. while(p3)
  31. {
  32. printf("%d\n",p3->data);
  33. p3=p3->next;
  34. }
  35. }
  36. int main()
  37. {
  38. Node *p;
  39. int i,j,k;
  40. p=(Node *)malloc(sizeof(Node));
  41. p->next=NULL;//创建头节点
  42. for(i=0;i<3;i++)
  43. {
  44. printf("Please input the number you want to insert");
  45. scanf("%d",&k);
  46. Insert(p,k);
  47. }
  48. traversal(p);
  49. return 0;
  50. }

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

闽ICP备14008679号