文章目录

  • 前言
  • 数组
    • 多维数组的存储方式
  • 矩阵
    • 常见的特殊矩阵
    • 对称矩阵的压缩存储计算
    • 三角矩阵的压缩存储计算
    • 三对角矩阵的压缩存储计算
    • 稀疏矩阵的压缩存储方式
  • 广义表
    • 广义表的属性
    • 广义表的存储方式
  • 总结
  • 参考资料
  • 作者的话

前言

“数组、矩阵与广义表”学习提纲。


数组

多维数组的存储方式

  • 行优先
  • 列优先

矩阵

常见的特殊矩阵

矩阵分区:上三角区,主对角线,下三角区

  • 对称矩阵
  • 三角矩阵:上三角矩阵,下三角矩阵
  • 对角矩阵/带状矩阵:三对角矩阵

对称矩阵的压缩存储计算

数组表示:a[n][n]。其中a为数组名称,n为行和列数
元素表示:a[i][j]。其中i为行下标,j为列下标

存储元素数量:(1+n)×n÷2

存储下标(从0开始;行下标和列下标从1开始,行优先,存下三角区):

  • i×(i-1)÷2+j-1,i>=j(下三角区和主对角线元素)
  • j×(j-1)÷2+i-1,i<j(上三角区元素)

注意:

  • 关注:行下标和列下标从0或1开始,存储下标从0或1开始,依据行或列优先存储。对称矩阵还要多关注存储在上或下三角区
  • 行下标和列下标从0开始相比从1开始需要重新推导公式
  • 存储下标从1开始相比从0开始需要多+1
  • 选择题可以使用特殊值代入法判断

三角矩阵的压缩存储计算

数组表示:a[n][n]。其中a为数组名称,n为行和列数
元素表示:a[i][j]。其中i为行下标,j为列下标

存储元素数量:(1+n)×n÷2+1

下三角矩阵的存储下标(从0开始;行下标和列下标从1开始,行优先):

  • i×(i-1)÷2+j-1,i>=j(下三角区和主对角线元素)
  • (1+n)×n÷2,i<j(上三角区元素)

上三角矩阵的存储下标(从0开始;行下标和列下标从1开始,行优先):

  • (2×n-i+2)×(i-1)÷2+(j-i),i<=j(上三角区和主对角线元素)
  • (1+n)×n÷2,i>j(下三角区元素)

下三角矩阵的存储下标(从0开始;行下标和列下标从1开始,列优先):

  • (2×n-j+2)×(j-1)÷2+(i-j),i>=j(下三角区和主对角线元素)
  • (1+n)×n÷2,i<j(上三角区元素)

上三角矩阵的存储下标(从0开始;行下标和列下标从1开始,列优先):

  • j×(j-1)÷2+i-1,i<=j(上三角区和主对角线元素)
  • (1+n)×n÷2,i>j(下三角区元素)

三对角矩阵的压缩存储计算

数组表示:a[n][n]。其中a为数组名称,n为行和列数
元素表示:a[i][j]。其中i为行下标,j为列下标

存储下标(从0开始;行下标和列下标从1开始):2×i+j-3

由存储下标得行下标(从1开始)和列下标(从1开始)(假设存储下标为k):

  • i=[(k+1)÷3+1]下取整
  • j=k-2i+3

稀疏矩阵的压缩存储方式

顺序存储:

  • 三元组表示法:结构体或二维数组,行数为非零元素数量,列数为3:值,行下标,列下标
  • 伪地址表示法:二维数组,行数为非零元素数量,列数为2:值,伪地址/相对位置

伪地址表示法的相关存储计算:

  • 数组表示:a[m][n]。其中a为数组名称,m为行数,n为列数
  • 元素表示:a[i][j]。其中i为行下标,j为列下标
  • 伪地址/相对位置(从0开始,行优先):(i-1)×n+j

链式存储:

  • 邻接表表示法:一行为一个单链表,头结点有行下标和指针,其他结点有值、列下标和指针
  • 十字链表表示法:一行为一个单链表,一列为一个单链表,单链表纵横链接。结点有5个分量:值,行下标,列下标,指向下方结点的指针,指向右方结点的指针

广义表

广义表的属性

  • 长度:最上层元素的数量
  • 深度:展开子表后,括号的最大层数
  • 表头:表非空时,第一个元素
  • 表尾:表非空时,除第一个元素的其他元素

广义表的存储方式

  • 头尾链表(类似无头结点的单链表):原子结点:标记,值;广义表结点:标记,头指针,尾指针
  • 扩展线性表链表(类似有头结点的单链表):原子结点:标记,值,尾指针;广义表结点:标记,头指针,尾指针

总结

“数组、矩阵与广义表”学习提纲。


参考资料

  • 《2023版数据结构高分笔记》主编:率辉
  • 《2023年计算机组成原理考研复习指导》组编:王道论坛

作者的话

  • 感谢参考资料的作者/博主
  • 作者:夜悊
  • 版权所有,转载请注明出处,谢谢~
  • 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
  • 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
  • 文章在认识上有错误的地方, 敬请批评指正
  • 望读者们都能有所收获

“数组、矩阵与广义表”学习提纲相关推荐

  1. 18版考研数据结构天勤课后习题代码-数组、矩阵与广义表【完】

    #include <iostream> using namespace std; #define maxSize 101 /* //把非零元素移动到数组前端  天勤P122(二)1 voi ...

  2. 第五章 数组、矩阵与广义表

  3. 什么是广义表、广义表及定义详解

    前面讲过,数组即可以存储不可再分的数据元素(如数字 5.字符 'a'),也可以继续存储数组(即 n 维数组). 但需要注意的是,以上两种数据存储形式绝不会出现在同一个数组中.例如,我们可以创建一个整形 ...

  4. C语言数据结构学习——数组和广义表

    数组和广义表 数组 数组定义 特点 常见运算及声明方式 数组的顺序表示和实现 矩阵的压缩存储 概念 稀疏矩阵 对称矩阵 三角矩阵 广义表 数组 数组定义 数组(Array)是有序的元素序列.若将有限个 ...

  5. UESTC--ICODING数组与广义表-----矩阵加法

    UESTC--ICODING数组与广义表-----矩阵加法 题目: 相关定义如下: 代码: 文章供学习交流参考 题目: 实现三元组表示的两个稀疏矩阵的加法. 相关定义如下: ElemType elem ...

  6. 数据结构(C)必会知识点+易错点:数组和广义表(n维数组地址计算公式,特殊矩阵对称矩阵的存储,广义表的表示方法)

    一,n维数组地址计算公式 ji表示n维数组中该元素在第i维中的坐标 ai表示n维数组中第i维的起始坐标 bi表示第i维度的长度 L表示一个元素所占的字节数 LOC(-)表示该坐标对应的存储中的地址(一 ...

  7. 数组、特殊矩阵、稀疏矩阵、广义表

    文章目录 一.数组 基本知识 存储方式及地址计算 一维数组 地址计算 二维数组 地址计算 例题 例一 例二 二.特殊矩阵 对称矩阵 地址计算 三.稀疏矩阵 三元组 三元组顺序表 稀疏矩阵转置算法 算法 ...

  8. 数组和广义表 - [数据结构]

    2005-09-07 数组和广义表 - [数据结构] 第五章 数组和广义表 --非线性数据结构 5.1 数组的定义和运算 ☆二维数组的逻辑结构形式定义为: 2_Array=( D, R ) 其中 D= ...

  9. 6.串、数组、广义表

    思考 一.什么是串.数组.广义表?(What) 1.串的定义 1.串: 2.子串.真子串: 3.字符位置.子串位置.空格串 4.串相等 2.案例引入 3.串的类型定义.存储结构及其运算 1.类型定义 ...

最新文章

  1. Python isinstance() 函数
  2. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge
  3. 音频数据建模全流程代码示例:通过讲话人的声音进行年龄预测
  4. 列注释_简单5步了解相关矩阵的注释热图
  5. AJAX入门——工作原理
  6. 微软MVC对架构的一点思考
  7. 对 比 学 习 小 综 述
  8. docker用gpu的参数_Docker化部署(GPU)
  9. Linux下定时切割nginx日志并删除指定天数前的日志记录
  10. Android视频编码的坑
  11. 习题 3.10 有一函数:写一程序,输入x,输出y值。
  12. 欧奈尔RPS曲线的编制方法及常见问题解答
  13. Selenium模拟浏览器获取爬取QQ音乐歌词、评论等。
  14. dubbo源码分析-dubbo-serialization
  15. 解决VMware中的Windows Server 2012 R2无法成功安装Hyper-V的问题
  16. 你需要了解的JS框架 用途:构建数
  17. 无处不在的内存泄漏-苹果BUG?
  18. 润物无声因挚爱,育人无痕待花开
  19. 台式计算机win如何联网,Win10台式机怎么连接无线网(wifi)?
  20. vue中单选框设置默认选中值

热门文章

  1. GPT模型成功的背后用到了哪些以数据为中心的人工智能技术?
  2. delete、drop、truncate的区别和用法
  3. MS CASTEP模块的计算原理和功能
  4. 7.pyagem-游戏背景
  5. 云计算机根据部署方式,云计算的三种类型及部署模式
  6. [B2B、B2C、C2C] 区别介绍
  7. Python写网络爬虫(二)
  8. Python 数据可视化—下载数据(CSV文件格式、JSON格式)
  9. 从来没有一种工作叫钱多、事少、离家近(转)
  10. 利用idea创建一个基本的smm项目(带增删改查)