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 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构 (2)顺序表与链表 四部曲总汇 -> 正文阅读

[数据结构与算法]数据结构 (2)顺序表与链表 四部曲总汇

线性表

  • 开篇前先了解一下什么是线性表

线性表是最简单的数据结构,是一些相同特征的元素的有限序列,在逻辑结构上每个元素就像被一条线串联起来,物理结构,则是每个元素在计算机中的联系


疑惑

  • 开篇前请带着一下几个疑惑看文章
  1. 顺序表的优点与缺点
  2. 链表的优点与缺点
  3. 他们的区别

顺序表

  • 顺序表他是由多个相同性质的元素组成,通常是用数组来实现的
  • 如图所示在这里插入图片描述
  • 顺序表一般有俩种
    1. 静态
    1. 动态

静态

静态就是创建好之后就能随意改变大小,开大了会造成浪费,开小了又不够,改变也只能从源头改变,非常局限

动态

动态则是需要的时候申请一块(由malloc,calloc,realloc动态申请开辟的),开大减少了浪费,开小不够的尴尬场面,

举一个生活中的例子:

  • 静态就好比是你花钱去买一个储物间一样,多少钱就买都大空间
  • 动态就好比给你一块地和铁铲,你要放多少东西,就造多大的储物室

实现顺序表

  • 在这个期间他的优缺的会被无限的放大
  • 他们都基于动态基础上
  • 请看我写的另篇实现顺序表

链表

  • 链表是是逻辑上连续存放每个元素就像被链条穿插在一起,但是物理啊结构上非连续,前面的元素存着下一个元素的地中,(我称他为羁绊表)

逻辑结构

他们就像是被一条链条拴在一起
如图所示
在这里插入图片描述

物理结构

上个元素存着下一个元素的地址通过地址可以找到他
在这里插入图片描述


链表的种类

  • 他种类繁多
  • 八种
  • 常用的就是单链表双向带头链表
  • 由图所示
    在这里插入图片描述

简单介绍各种链表

  • 如图所示
    在这里插入图片描述

实现单向不循环链表/ 实现带头双向循环链表

单向不循环链表/ 实现带头双向循环链表

链表/顺序表的优缺点

  • 顺序表的尾插效率高,销毁也快,但是头插任意位置效率低,会造成一定空间浪费
  • 单链表的尾插与头插效率高,但是他有一个劣势就是他找不到前一个但是销毁一般 效率O(N)需要的时候申请
  • 双向带头循环链表,可以说是单链表的优化版,但是他实现起来也是比单链表复杂,可以找到前面的节点,但是依然销毁没有顺序表那样效率高
不同顺序表链表
存储空间上物理上联系逻辑上连续
随机访问支持:O(1)不支持
任意位置插入或者删除元素挪动数据,覆盖修改指针指向
插入插入不够扩容一块空间想插入时申请一块
应用场景频繁访问+元素高效储存任意位置插入+删除
缓存利用率

链表/顺序表oj

  • 曲四是升华篇,他们都基于增删查改的基础上
  • 曲四

end

  • 相信经过上面的层层洗礼你已经对链表顺序表又一个深刻的见解了(记得看他们的实现方法,点跳转链接即可实现顺序表链表曲二,三,)
  • 但是革命的大军依旧没有停止,多去leetcode刷题哟,加深记忆不说了leetcode向我招手呢
    在这里插入图片描述
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:18:53  更:2021-08-19 12:18:57 
 
开发: 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 20:39:28-

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