当前位置:网站首页 > 区块链基础 > 正文

单链表实现排序(单链表进行链表排序最好时间复杂度)



2.单链表判空操作

3.销毁单链表

4.清空单链表

5.求单链表表长

6.单链表的取值

7.单链表的查找

    7.1按值查找(数据的地址)

    7.2按值查找(第几个数据元素)

8.单链表的插入

9.单链表的删除

10.单链表的建立

     10.1头插法

     10.2尾插法

单链表的初始化(带头结点)

算法步骤:

判空

算法思路:

判断头结点指针域是否为空

销毁单链表

算法思路:  

从头指针开始,依 次释放所有结点

清空链表

算法思路:

依次释放所有结点,并将头结点指针域设空

求单链表表长

算法思路:

从首元结点开始依次计数直至最后一个元素 

总结

指向头结点 p=L;

指向首元结点p=L->next;i=1;

指向下一结点p=p->next; 

取值——取单链表中第i个元素

中找取第i个元素L->elem[i-1]

算法思路:

从头指针开始,顺着链域next逐个结点往下搜索,直至搜索到第i个结点为止,因此,


按值查找分为:1.根据指定数据获取该数据所在的位置(数据的地址)2.根据指定数据获取该数据所在的位置(是第几个元素)

①从第一个结点起,依次和e比较。

③如果查遍整个链表都没有找到和一直相等的元素停止循环返回0/NULL。

时间复杂度:

因为线性链表只能顺序存取,即在查找时要从头指针找起,查找的时间复杂度为

插入——在第i个结点前插入值为e的新结点

  算法步骤:

时间复杂度:

因线性链表不需要移动元素,只要修改指针,一般情况下时间复杂度为

 但是O(n)。

删除——删除第i个结点

  算法步骤:

时间复杂度:

因线性链表不需要移动元素,只要修改指针,一般情况下时间复杂度为

插入和删除在循环体:

相同点:都是在找第i-1个结点

不同点:插入的循环体条件while(p),删除的循环体条件while(p->next)

while(p)可以取到最后一个,在尾结点插入没有问题

while(p->next)可以取倒数第二个,在删除最后一结点时p->next->next容易指空

头插法(前插法)建立单链表

创建单链表的过程就是动态生成链表的过程,即从空表的初始状态起依次建立各元素结点,并从最后一个结点开始,逐个插入链表。

时间复杂度O(n)

到此这篇单链表实现排序(单链表进行链表排序最好时间复杂度)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 腾讯文档 链接(腾讯文档链接怎么下载)2025-10-11 10:00:07
  • 跳转链接制作软件(跳转链接制作软件有哪些)2025-10-11 10:00:07
  • 跳转链接(腾讯文档怎么跳转链接)2025-10-11 10:00:07
  • 跳转链接怎么制作ppt(怎样设置跳转链接ppt图片)2025-10-11 10:00:07
  • 作用域和作用域链2025-10-11 10:00:07
  • 单向链表与双向链表(单链表和双向链表的区别)2025-10-11 10:00:07
  • 如何防止链接跳转(如何防止链接跳转网页)2025-10-11 10:00:07
  • 腾讯文档跳转链接的方法(腾讯文档跳转链接的方法是什么)2025-10-11 10:00:07
  • 在新标签页中打开链接(在新标签页中打开链接怎么操作)2025-10-11 10:00:07
  • b站怎么在视频里加跳转链接(b站怎么弄视频链接)2025-10-11 10:00:07
  • 全屏图片