IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构-C语言 || 线性表的总结 -> 正文阅读

[数据结构与算法]数据结构-C语言 || 线性表的总结

数据元素的结构——逻辑结构和物理结构

逻辑结构:数据元素之间的关系

物理结构:数据元素在计算机存储器中的位置?

目录

1.线性表

a) 线性表的顺序存储——顺序表

b) 线性表的链式存储——链表、循环链表、双向链表

▏? 何时选用顺序表,何时选用链表作为线性表的存储结构合适?

2.线性表的创建?

a)?顺序表的创建——初始化、查找、插入、删除?

?b) 双链表的创建——初始化、查找、插入、删除、删除重复元素?

?c) 单链表的创建——初始化、合并链表、逆序输出


1.线性表

定义:由n个数据元素组成的有限序列

特点:具有相同类型的数据元素,因此数组是线性表数据元素逻辑结构的体现。

分类:以数据元素的存储方式分为——线性表的顺序存储、线性表的链式存储

a) 线性表的顺序存储——顺序表

定义:用一组地址连续的存储单元依次存储线性表的数据元素

特点:数据的逻辑结构和物理结构一致,即数据元素之间的关系是以元素在计算机中“物理位置相邻”来体现的。

分类:动态顺序表、静态顺序表 (对应动态数组【使用realloc函数给数组扩容】、静态数组)

描述方式:一维数组

b) 线性表的链式存储——链表、循环链表、双向链表

定义:用一组任意的存储单元存储线性表数据元素?

描述方式:指针

▎? 链表

特点:①数据元素的逻辑结构和物理结构不一定一致;②在定义上,链表的定义包括数据元素的取值后继结点的指针定义(数据域和指针域)

分类:动态链表、静态链表

? ? ? ? ? 动态链表:大小不固定的存储(使用malloc函数随时分配内存的)

? ? ? ? ??静态链表:大小固定的内存存储

▎??循环链表

特点:表中最后一个结点的指针域指向头结点(构成一个闭

分类:单循环链表、双向循环链表

  • 单:沿着一个方向找其他结点
  • 双:从结点的任意位置向任意方向都能找到其他结点

▎? 双向链表

特点:有两个指针域,一个指向结点的直接前驱,一个指向结点的直接后继,具有双向性。

▏? 何时选用顺序表,何时选用链表作为线性表的存储结构合适?

? ? ? 首先要明白顺序表和链表各自的特点——

?顺序表:元素顺序存储,有一个连续的内存块来存储数据,则对顺序表按“位”访问快(对固定元素的随机存取很方便),而插入删除等大量元素移动操作慢

?链表:元素链式存储,数据存储在任意内存单元,通过指针进行勾链串成一个线性表,则对链表插入删除等大量元素移动操作快(只需要改变插入删除位置两边结点指针的指向即可),而按“位”访问慢(对于元素的随机存取则需要遍历查找)。

综上所述

?对于少量元素操作,随机存取、查找元素需求更多,修改次数多的时候 选择顺序表;

?对于大量元素操作,增、改、删、查等操作进行较多的时候 选择链表。

2.线性表的创建?

a)?顺序表的创建——初始化、查找、插入、删除?

68948b7a5f9445d68ee9d63ce130c5f5.jpeg

具体实现方法、代码及时间/空间复杂度分析见

数据结构-C语言-线性表 || 顺序表的实现_◎菜澜子的博客-CSDN博客


??408b582c92a54dbb8740c138c8dd30b6.jpeg

?b) 双链表的创建——初始化、查找、插入、删除、删除重复元素?

插入?

8a2d15ce0eac45b089067008fe528449.png

?删除:

a89bc2354cec43122ee5ab29cbdcee03.png

?具体实现方法、代码及时间/空间复杂度分析见

数据结构-C语言-线性表 || 双向链表的实现_◎菜澜子的博客-CSDN博客


??c) 单链表的创建——初始化、合并链表、逆序输出

?初始化

2158526a881168a3089bf85a0280e5eb.png

删除

a7a7f07c600dd59a113a16d1f30cd000.png

具体实现方法、代码及时间/空间复杂度分析见?

数据结构-C语言-线性表 || 单链表的实现_◎菜澜子的博客-CSDN博客


总结于10.1~10.4?

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:07:03  更:2022-10-08 21:11:02 
 
开发: 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年12日历 -2024/12/28 2:00:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计