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

单链表实现排序(单链表进行链表排序最好时间复杂度)2 单链表判空操作 3 销毁单链表 4 清空单链表 5 求单链表表长 6 单链表的取值 7 单链表的查找 7 1 按值查找 数据的地址 7 2 按值查找 第几个数据元素 8 单链表的插入 9 单链表的删除 10 单链表的建立 10 1 头插法 10 2 尾插法 单链表的初始化 带头结点 算法步骤 判空 算法思路 判断头结点指针域是否为空 销毁单链表 算法思路 从头指针开始 依

大家好,我是讯享网,很高兴认识大家。



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-06-02 22:25
下一篇 2025-06-12 12:45

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/163436.html