一、单向链表

(一)链表的查找

(二)链表的修改

(三)尾插法:申请的节点地址赋值NULL

(四)链表的销毁:定义指针pfreenode和指针ptmpnode指向头节点,ptmpnode向后走,然后释放pfreenode指向的节点,最后将pfreenode指向ptmpnode的空间

(五)查找链表的中间节点:满指针走一步快指针走两步

(六)查找链表的倒数第k个节点:快慢指针相差k

(七)不知道头节点地址如何删除链表中间节点:用下一个节点覆盖要删的节点,然后删除下一个节点

(八)链表的倒置:将头节点断开,其他元素用头插法插入即可

(九)链表的排序

        1.冒泡排序:定义两个指针,相邻元素比较,大的往后排。ptmpnode2为NULL,即等于pend,循环结束,pend赋值为ptmpnode1的节点地址。

        2.选择排序

(十)判断是否有环、计算环长、找到环入口

        1.判断是否有环:定义两个指针一个快指针每次走两步,慢指针每次走一步。快指针-慢指针==环长,即相遇。快指针和慢指针相等即链表有环

        2.计算环长:定义一个指针从相遇点走一圈,计数即可得到环长

        3.找环入口:定义两个指针一个从相遇点走,一个从开始走,相遇位置即为环入口位置

二、双向链表(参考单向链表)

(一)节点定义

(二)创建

(三)链表的头插法

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。