2025年12月24日 - 数据结构

1、顺序表的基本操作

插入操作

删除操作

按位查找

按值查找

结构体不能直接用 == 进行比较

2、单链表

定义单链表时不同的声明方式

不带*表示这是一个单链表的节点,带*表示这是一个单链表

不带头节点的单链表

带头节点的单链表

带不带头节点的区别

带头结点的单链表写代码会更方便点,不带头结点的链表对第一个数据节点和后续数据节点的处理需要用不同的代码逻辑,对空表和非空表的处理需要用不同的代码逻辑。

按位序插入(带头节点)

按位序插入(不带头节点)

指定节点的后插操作

指定节点的前插操作

不遍历找他的前一个节点,而是直接新创建一个节点,和后一个节点的数据进行交换即可

按位序删除(带头节点)

指定节点的删除操作

按位查找

按值查找

尾插法建立单链表(带头节点)

创建一个临时指向表尾的指针,避免每次添加节点时都要遍历一遍前面的所有节点。

头插法建立单链表(带头节点)

头插法有个重要的应用,可以逆置链表

3、双链表

双链表的初始化

双链表的插入

指定节点的后插操作

双链表的删除

双链表的遍历

循环链表

循环单链表

循环双链表

循环双链表的插入

循环双链表的删除

静态链表

定义一个静态链表

使用数组的形式获取连续的一片存储空间(虽然是获取连续的存储空间,但是节点的顺序不是按存储顺序放置的),将每个节点分成两部分,一部分存储数据,另一部分存储下一个元素的数组下标。

静态链表的初始化

静态链表的基本操作

顺序表和链表的优缺点

逻辑结构

都属于线性表,都是线性结构

物理结构/存储结构

线性表:支持随机存取,存储密度高(不用存储下个节点的指针),大片连续空间分配不方便,改变容量不方便。

链表:离散的小空间分配方便,改变容量方便,不可随机存储,存储密度低。

数据的运算/基本操作

链表不管怎么查找都需要遍历链表

如何选择?

相关推荐
祖力557 小时前
数据结构的基本概念与单向链表(链表数据类型构造、创建、头插、尾插、头删、尾删)
数据结构·链表
白狐_79810 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander25811 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
船厂电气自动化ai大模型12 小时前
AI大模型与数学 第32课 函数凹凸性与二阶导数:拐点求解、凹凸区间计算(10道二阶导数计算题)
数据结构·人工智能·python·深度学习·算法
旖旎夜光12 小时前
LeetCode 3:无重复字符的最长子串(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
不会就选b16 小时前
算法日常・每日刷题--<优先级队列>2
数据结构·算法
LuminousCPP17 小时前
单链表专题(三)-刷题复盘篇:从快慢指针到环形链表 II 数学推导
数据结构·经验分享·笔记·学习·算法·链表
ChaoZiLL17 小时前
二叉树经典例题
数据结构·算法
三克的油18 小时前
算法基础-1
数据结构·c++·算法
一米阳光866118 小时前
软考(中级)软件设计师核心笔记(8)数据结构——树与二叉树
数据结构·笔记·职场发展·软考·软件设计师·中级职称