四、数组和广义表

数组的定义

  • 数组是我们熟悉的数据类型,数组中各元素具有统一的类型,并且数组元素的下标一般具有固定的上界和下界,因此,数组的处理比其它复杂的结构更为简单。
  • 任何数组A都可以看作一个线性表。数组维数确定后,数据元素个数和元素之间的关系不再发生改变,适合顺序存储。
  • 数组的基本操作

数组的顺序表示和实现

  • 行优先顺序

  • 列优先顺序

矩阵的压缩存储

  • 有些特殊矩阵,非零元素呈某种规律分布或者矩阵中出现大量的零元素的情况下,会占用许多单元去存储重复的非零元素或零元素,这对高阶矩阵会造成极大的浪费,为了节省存储空间,对这类矩阵进行压缩存储——即为多个相同的非零元素只分配一个存储空间;对零元素不分配空间。
  • 特殊矩阵:所谓特殊矩阵是指非零元素或零元素的分布有一定规律的矩阵,如对称矩阵、三角矩阵、对角矩阵等等。

对称矩阵

  • 对称矩阵中元素关于主对角线对称,故只要存储矩阵中上三角或下三角中的元素,让每两个对称的元素共享一个存储空间,这样能节约近一半的存储空间。
  • n2 个元素可以压缩到 n(n+1)/2个空间中。

三角矩阵

  • 以主对角线划分,三角矩阵有上三角和下三角两种。上三角矩阵它的下三角中的元素均为常数。下三角矩阵正好相反,它的主对角线上方均为常数。

稀疏矩阵

除了记录非零元素的值之外,还必须同时几下它所在的行和列的位置。稀疏矩阵的存储方法一般有三种:三元组法、行逻辑连接顺序表和十字链表法。

广义表

  • 是由零个或多个原子或子表组成的优先序列,是线性表的推广。

广义表的存储结构

  • 广义表中的数据元素可以具有不同的结构,因此,难以用顺序存储结构表示,通常采用链式存储结构,每个数据元素可用一个节点表示。由于广义表中有两种数据元素,因此需要有两种结构的节点——一种是表结点,一种是原子结点。
  • 表结点由三个域组成:标志域、指示表头的指针的指针域和指示表尾的指针域;而原子域只需两个域:标志域和值域。

  • 表结点由三个域组成:标志域、指示表头的指针域和指向下一个元素的指针;原子结点的三个域为:标志域、值域和指向下一个元素的指针。

有帮助到你的点赞、收藏和关注一下吧

需要更多教程,微信扫码即可

数据结构知识点大汇总(四)相关推荐

  1. 数据结构知识点大汇总(七)

    七.查找 概述 查找表:由同一类型的数据元素(或记录)构成的集合. 静态查找表 静态查找是指在静态查找表上进行的查找操作,在查找表中满足条件的数据元素的存储位置或各种属性.静态查找表的查找算法主要有: ...

  2. 数据结构知识点大汇总(六)

    六.图 图的概念 图是一种较线性表和树更为复杂的数据结构,在图形结构中,结点之间关系可以是任意的,图中任意两个数据元素之间都可能相关. 有向图和无向图 若无向图中的每两个顶点之间都存在着一条边,则称该 ...

  3. 数据结构知识点大汇总(八)

    八.排序 排序概述 排序的分类:内部排序和外部排序(若待排序记录都在内存中,称为内部排序:若待排序记录一部分在内存,一部分在外存,则称为外部排序).稳定排序和不稳定排序. 内部排序的算法:插入排序(希 ...

  4. 数据结构知识点大汇总(一)

    一.数据结构绪论 数据结构的基本概念 数据结构是一门研究非数值计算的程序设计问题中,计算机的操作对象以及它们之间的关系和操作的学科. 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和 ...

  5. 数据结构知识点大汇总(二)

    二.线性表 线性表的类型定义 线性表是n(n>0)个相同类型数据元素构成的有限序列,其中n为线性表的长度. 线性表的基本操作: 线性表的顺序表示和实现 线性表的顺序存储结构:用一组地址连续的存储 ...

  6. 数据结构知识点大汇总(三)

    三.栈和队列 栈的概念 栈是限制在表的一端进行插入和删除运算的线性表,通常称插入.删除的这一端为栈顶,另一端为栈底.当表中没有元素时成为空栈. 栈的进出顺序判断: 栈的基本操作: 顺序栈 顺序栈利用一 ...

  7. 数据结构知识点大汇总(五)

    五.树 树的定义 树的逻辑表示:树形表示法.文氏图表示法.凹入表示法.括号表示法. 结点:表示树中的元素,包括数据项及若干指向其子树的分支. 结点的度:结点拥有的子树树:树的度:一棵树中最大的结点度数 ...

  8. 面试必会系列 - 3.1 Redis知识点大汇总(数据类型,内存模型,持久化,缓存击穿,集群,一致性哈希等等)

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

  9. 面试必会系列 - 2.1 MySQL知识点大汇总(基本架构,存储引擎,锁,事务,索引,B+树等等)

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

最新文章

  1. 2021年春季学期-信号与系统-第八次作业参考答案-第五小题
  2. STM32中3个延时函数
  3. clojure学习记录
  4. [tensorflow] - csv文件读取
  5. 牛客练习赛69E-子串【树状数组】
  6. linux var 空间不足,/var空间不足怎么办?(求安全保险的方法)
  7. Springboot与Spring的关系
  8. Linux系统NFS故障现象
  9. 矩池云如何使用 conda create 创建纯净的 Python3.6 环境?
  10. linux中用shell获取时间,日期
  11. 距离度量以及python实现(一)
  12. 确定填充介质的矩形波导单模传输TE10波的工作频率
  13. 一本用户体验时代的产品生存指南
  14. Android开发新手学习总结(一)——使用Android Studio搭建Android集成开发环境
  15. sprint冲刺(第二天)
  16. 备战数学建模14-熵权法确定指标权重系数
  17. 一款好用的绘制组织结构图的软件-亿图组织结构图
  18. JAVA各种系统架构图及其简介,分布式中间件技术实战
  19. 等保三级多久测评一次?每年都要测评吗?
  20. 陈菁北大计算机,北大生科2018年度億方学者名单揭晓 三名年轻科学家获奖

热门文章

  1. 缺钱还是车库放不下?王思聪两台顶级座驾上架二手市场,要价比新车还贵!...
  2. 华为推出地图服务 助力开发者强化地图能力
  3. 口碑饿了么融合一周年 城市生活服务为何变得更"立体"了
  4. 2019款新iPhone发布时间曝光:依旧9月12日亮相?
  5. 论降价就服拼多多!618大促 iPhone最高降幅2811元
  6. 5G对人体危害很大?张朝阳回应:并未做过深入研究
  7. HTML meta 标签 遇到meta http-equiv=refresh content=0; url=详解
  8. 大数据分析机器学习(一)之线性模型-年龄和心率关系
  9. 设置编译out_matlab2017a与 CCS 6.2联调设置
  10. 我的docker随笔20:多平台docker镜像下载