当前位置: 首页 > news >正文

数据结构:单向链表、双向链表

一、单向链表

(一)链表的查找

(二)链表的修改

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

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

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

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

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

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

(九)链表的排序

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

        2.选择排序

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

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

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

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

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

(一)节点定义

(二)创建

(三)链表的头插法

http://www.dtcms.com/a/314714.html

相关文章:

  • Java中给List<T> 对象集合去重
  • 深化中坦经贸合作 谱写东非璀璨新篇!东非商贸物流中心(EACLC)正式启航
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现路口车辆速度的追踪识别(C#代码UI界面版)
  • 通过java将 word(.doc) 转 md
  • Java数组转换为逗号分隔字符串的方法
  • dbeaver导入数据及配置讲解
  • 通过 Flink 和 CDC 从 Oracle 数据库获取增量数据,并将这些增量数据同步到 MySQL 数据库中
  • Go 与 Python 爬虫代码实操对比
  • # 自动定时运行Python爬虫脚本教程(Windows任务计划程序)
  • LED光源模拟太阳光,全新科技照亮未来
  • 解决 GitLab external_url 修改无效的问题:保留数据重新生成配置
  • 一(2)关于单链表中的疑问 head = head->next; 和 head->next = head 的核心区别
  • 张宇高数基础30讲与1000题学习笔记(第4-6章)
  • LeetCode:219.存在重复元素||220.存在重复元素|||
  • SpringDoc OpenAPI 3 和 TestContainers 的 零配置自动化API测试方案,实现从API文档生成
  • 安全策略实验报告
  • ensp防火墙用户认证综合实验
  • AI开灯的几种方法,与物理世界的交互过渡
  • 生成式人工智能展望报告-欧盟-06-深度调研-医疗、教育、网络安全
  • 《红色脉络:一部PLMN在中国的演进史诗 (1G-6G)》 第4篇 | 专题:多址技术——频谱资源“共享”的艺术 (FDMA/TDMA/CDMA)
  • 3.JVM,JRE和JDK的关系是什么
  • 《Python 实用项目与工具制作指南》· 1.1 安装Python
  • Jeston + TensorRT + Realsense D435i + ROS noetic + Yolo11 各版本模型目标检测
  • Go 函数选项模式
  • Nature Commun:电化学可及性新策略!PEDOT限域COF孔道提升铀电沉积效率46倍
  • Sklearn 机器学习 数据聚类 肘部法则选择聚类数目
  • 二叉树的概念以及二叉树的分类,添加,删除
  • 机器学习通关秘籍|Day 02:特征降维、用KNN算法和朴素贝叶斯实现分类
  • MySql的两种安装方式
  • AI编程助手:终结996的新希望