数据结构基础:线性表学习笔记
1、线性表定义
线性表是指n个元素的有限序列(n>=0),通常用(a1,a2,a3...,an),来表示。
2、线性表特点
1、存在唯一的一个首元素
2、存在唯一一个尾元素
3、除第首元素外,每个元素只有一个直接前驱。
4、除尾元素外,每个元素只有一个直接后继。
3、线性表的存储结构
3.1 线性表的顺序存储
定义:线性表的顺序存储是指用一组连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理存储位置上也相邻。这种存储方式无需占用额外的存储空间来存储。
优点:可以随机读取 表中的元素。按照序号检索元素比较快。
缺点:插入、删除元素都需要移动元素。
3.2 线性表的链式存储
3.2.1 线性表的概念
定义:是节点来存储数据元素,元素节点的地址可以连续,也可以不连续。因此节点之间的元素的存储必须有逻辑关系。
元素节点:包含数据域、指针域(存储该元素的直接前驱、直接后继的位置信息)
优点:插入和删除操作不需要移动元素。、
缺点:只能顺序的读取元素,不能随机读取。
3.2.2 线性链表的分类
单链表:最后一个节点指针域为null
循环链表:最后一个指针域为指向第一个节点。因此循环链表可以从任意节点开始遍历整个链表。
双向链表:每个节点包含两个指针,分别指明当前元素的直接前驱和直接后继的存储信息。可以从两个方向遍历链表中的元素。
3.3 线性表顺序存储和链式存储比较
性能方面 | 比较内容 | 顺序存储 | 链式存储 |
空间性能 | 存储密度 | =1 更优 | <1 |
存储容量 | 初始化确定 | 动态分配,更优 | |
查询算法 | O(n/2) | O(n/2) | |
读取算法 | O(1) 更优 | O([n+1]/2),范围1~n | |
插入算法 | O([n]/2),范围0~n | O(1) 更优 | |
删除算法 | O([n-1]/2) | O(1) 更优 |
IT技术分享社区
个人博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-09-10 有关程序员的几个爆笑段子
2019-09-10 有关程序员的几个爆笑段子
2018-09-10 UTC时间、GMT时间、本地时间、Unix时间戳
2018-09-10 UTC时间、GMT时间、本地时间、Unix时间戳
2018-09-10 UTC时间、GMT时间、本地时间、Unix时间戳