转自:http://segmentfault.com/a/1190000002471232

  昨天和同事们聚餐,说到链表,由于对数据结构的不了解(在学校的时候看过一点,现在早忘了),直接丢人现眼了。意识到自己的不足,所以赶紧充充电。

  再了解链表之前,先来了解线性表的存储结构:其主要分为两类,一、顺序存储结构——顺序表;二、链式存储结构——链表。

  通过两者的对比表格,我们能够更加清楚的了解顺序表与链式表的特点:

顺序存储结构——顺序表

1、可以随机访问。

2、占用连续空间,存储分配只能预先进行,即静态分配。

  一旦分配好了,在对其操作过程中不变。

3、插入操作需要移动多个元素。

链式存储结构——链表

1、不可以随机访问。

2、不需要占用连续空间,动态分配。即在要创建新结点的

  时候再进行空间划分。

3、插入操作不需要移动多个元素。

4、每个结点划一部分空间存储指向下一结点位置的指针,

  故存储空间利用率比顺序表稍低

  接下来分别了解5种形式的链表:

  1、单链表

  头结点可带、可不带。

  不带头结点的,head指针则指向开始结点,当head为null时,链表为空。

  带头结点的,head指针始终不为空。head ->头节点 next 为null时,链表为空。

  头结点不存储信息,只是作为标记

  

  2、双链表

  双链表就是在单链表结点上增添了一个指针域,指向当前结点的前驱。这样就可以方便的由其后继来找到其前驱,而实现输出终端结点到开始结点的数据序列。

  同样,双链表也分为带头结点的双链表和不带头结点的双链表,情况类似于单链表。带头结点的双链表 head->next 为null
的时候链表为空。不带头结点的双链表head为null的时候链表为空。

  3、循环单链表

  只要将单链表的最后一个指针域(空指针)指向链表中第一个结点即可(这里之所以说第一个结点而不说是头结点是因为,如果循环单链表是带头结点的则最后一个结点的指针域要指向头结点;如果循环单链表不带头结点,则最后一个指针域要指向开始结点)。

  带头结点的循环单链表当head等于head->next时链表为空;
  不带头结点的循环单链表当head等于null时链表为空。

  4、循环双链表

  

  循环双链表的构造源自双链表,即将终端结点的next指针指向链表中第一个结点,将链表中第一个结点的prior指针指向终端结点。

  带头结点的循环双链表当head->next和heaad->prior两个指针都等于head时链表为空。
  不带头结点的循环双链表当head等于null的时候为空。

  5、静态链表

  这种链表借助一维数组来表示,例如:

转载于:https://www.cnblogs.com/hcw136156133/p/5043164.html

数据结构之线性存储结构相关推荐

  1. python树结构_数据结构的树存储结构

    之前介绍的所有的数据结构都是线性存储结构.本章所介绍的树结构是一种非线性存储结构,存储的是具有"一对多"关系的数据元素的集合. (A)                       ...

  2. 20.0、C语言数据结构——图的存储结构

    20.0.C语言数据结构--图的存储结构 图的存储结构相比较线性表与树来说就复杂很多了: 1. 我们回顾下,对于线性表来说,是一对一的关系,所以用数组或者链表均可简单存放:树结构是一对多的关系,所以我 ...

  3. 数据结构和数据存储结构

    数据结构和数据存储结构 数据结构和数据存储结构是不同的:一个是逻辑概念上的一个是真实存储在计算机上的 数据的存储结构:顺序.链式.索引.散列 数据的存储结构是针对计算机来说的,指的是数据的逻辑结构在计 ...

  4. 数据结构 二叉树的存储结构_线程二叉树| 数据结构

    数据结构 二叉树的存储结构 线程二叉树 (Threaded Binary Tree ) A binary tree can be represented by using array represen ...

  5. 数据结构(一)线性存储结构

    一.基本概念 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系. 线性结构拥有两种不同的存储结构,即顺序存储结构和链式存储结构.顺序存储的线性表称为顺序表,顺序表中的存储元素是连 ...

  6. 数据结构——图(存储结构)

    数据结构--图 图的定义和基本术语 图的类型定义 图的存储结构 数组(邻接矩阵表示法) 网(即有权图)的邻接矩阵表示法 邻接表 邻接表表示法(链式) 图的邻接表存储表示 采用邻接表表示法创建无向网 邻 ...

  7. 数据结构--逻辑结构和存储结构区别和内容

    转载博客地址:http://c.biancheng.net/view/7524.html 1.逻辑结构 逻辑结构是指数据元素间抽象化的相互关系,与数据的存储无关,独立于计算机,它是从具体问题中抽象出来 ...

  8. 数据结构(逻辑结构和存储结构)

    一.逻辑结构: 逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构. 集合结构:表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据元素之间没有任何关系.如下图所示. 线性结构:类 ...

  9. 数据结构 - 逻辑结构和存储结构

    程序=算法+数据结构 N.沃思(Niklaus Wirth)教授提出: 程序=算法+数据结构 以上公式说明了如下两个问题: (1)算法决定如何构造和组织数据(算法→数据结构). (2)算法的选择依赖于 ...

最新文章

  1. MVC - 17.OA项目
  2. python reader循环_Python的for循环和while循环。
  3. windows 安装
  4. 【PAT甲级 火星数字】1100 Mars Numbers (20 分)Java 全部AC
  5. wordvba编程代码大全_面向对象、设计原则、设计模式、编程规范、重构
  6. cuda默认函数与c++冲突_好程序员Python教程系列-第8讲:函数和模块
  7. 深入理解DDD中的聚合
  8. 迁移pg_塑料包装袋中添加剂迁移到食品和药品中危害健康
  9. 将ESXi加入到vCenter中进行管理
  10. DeepMind去年亏损27亿元,同比扩大221%,谷歌说:继续烧
  11. 【CF 600E】Lomsat gelral(树上启发式合并, dsu on tree, 静态链分治,模板题)
  12. 冰点下载器手机版apk_冰点文库下载器app下载_冰点文库下载器手机安卓版软件下载v1.0.3...
  13. 永洪bi logo更换
  14. MFC AlphaBlend 函数
  15. 计算机重做系统 d盘,pe重装系统后原c盘变称了d盘如何解决
  16. 前期总结+开学展望(WYL)
  17. 动态监控网卡流量异常
  18. 关于maven的创建简单的servlet
  19. 设计全局ER模型 数据库系统原理(2007版) 课程代码4735 笔记
  20. 使用Amazon免费云主机和Docker,快速搭建PPTP服务器!

热门文章

  1. 2021-04-10 【数据库导数】数字类型的列如果位数过长,变为科学计数法问题
  2. 命名时取代基优先顺序_【选修五】高中化学重难点知识:有机物的命名方法
  3. 如何用linux登入数据库,Linux中MySQL数据库的使用①-----登录、数据库操作、表结构操作...
  4. 使用回溯法解决编辑距离问题(C语言)
  5. 浸会大学计算机专业硕士排名2019,2019软科世界大学学术排名香港浸会大学排名第701-800...
  6. php mysql第4版高清_PHP和MySQL WEB开发(中文高清第4版)
  7. Java中sum和Sum相同吗,Java认为变量Sum 和sum相同。
  8. mysql id会用完吗_数据库自增ID用完了会怎样?
  9. python敏感词过滤代码简单_大型企业都在用,Python实现敏感词过滤
  10. 用FPGA搭建一个STM32内核?