| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 王道计算机408数据结构 笔记4 -> 正文阅读 |
|
[数据结构与算法]王道计算机408数据结构 笔记4 |
2.3.1 单链表的定义 什么是单链表? 用代码定义一个单链表? (利用typedef简化数据类型的名字)? ?强调这是一个单链表——使用LinkList ?强调这是一个结点——使用LNode* 不带头结点 的单链表?: (L = NULL 防止脏数据 ) 带头结点的单链表: ?(头节点不存储数据) 知识回顾与重要考点: ? 2.3.2-1单链表的插入和删除 按位序插入(带头结点): 需要找到第i-1个结点,将新节点插到其后。 ?(最好时间复杂度O(1),最坏时间复杂度O(n),平均时间复杂度O(n)) 按位序插入(不带头结点): (与带头结点的插入的区别就是表首插入时头指针的改变) 指定结点的后插操作: 指定结点的前插操作: 方法二: (时间复杂度O(1),我愿称之为偷天换日)? 位序删除(带头结点) ListDelet(&L,i,&e):删除操作。删除表L中第i个位置的元素,并且用e返回元素的值。 ?指定结点的删除: ?(我惊呆了 ,不过这个有bug,万一是删除最后一个结点,只能遍历) 知识回顾与重要考点: ? 2.3.2-2 单链表的查找 按位查找: ?(平均时间复杂度O(n)) 封装(基本操作)的好处: 避免重复代码,简洁,易维护 ?按值查找: ? 求表的长度: ? 知识回顾与重要考点: ? 2.3.2-3 单链表的建立 如果给你很多元素,你怎怎么把它们存到单链表内呢 第一步:初始化一个单链表 第二部:每次取一个数据元素,插入到表尾/表头 尾插法建立单链表: (每次都要从表头遍历到最后一个结点,时间复杂度为O(n^2)) 为了节约时间,可以申请一个表尾指针: ? 头插法建立单链表: 头插法的链表逆置是非常重要的应用。 建议:本章所有的建立方法都是有头结点的,可以思考一下无头结点的实现算法。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:47:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |