当前位置:   article > 正文

带头结点单链表排序操作(C语言)

带头结点单链表排序操作(C语言)

代码:

  1. //带头结点单链表的排序操作
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include "demo2015-2.h"
  5. void SortList(LinkedList Head) {
  6. Node *p = Head->link;//将首元节点看做一个有序链表
  7. Node *pre,*s;
  8. s = p->link;
  9. p->link = NULL;
  10. p = s;//p指向第一个待处理的节点
  11. while (p) {//没有待处理的节点则退出循环
  12. s = p->link;//记录下一个待排序的结点
  13. pre = Head;//pre重新指向头结点
  14. if (pre->link->data < p->data) {
  15. pre = pre->link;
  16. }
  17. p->link = pre->link;
  18. pre->link = p;
  19. p = s;//p指向下一个待处理的节点
  20. }
  21. }
  22. int main() {
  23. LinkedList Head = (Node*)malloc(sizeof(Node));//创建头结点
  24. Head->link = NULL;
  25. Create(Head,5);
  26. PrintList(Head);
  27. printf("***********排序后***********");
  28. SortList(Head);
  29. PrintList(Head);
  30. return 0;
  31. }

运行:

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

闽ICP备14008679号