程序员“修炼成神”的必经之路——数据结构(第4章 多维数组和广义表)

本文介绍了数据结构中的多维数组和广义表,包括多维数组的定义、顺序存储方式(行优先、列优先),以及矩阵的压缩存储方法,如对称矩阵和三角矩阵。接着探讨了广义表的基础,定义和存储结构,强调了其作为线性表的推广特性。内容详实,适合想要深入理解数据结构的程序员阅读。
摘要由CSDN通过智能技术生成

目录

前言

一、多维数组

1.多维数组定义及顺序存储

1.1 多维数组的定义

1.2 数组的顺序存储

2.矩阵的压缩存储

2.1 特殊矩阵

2.2 稀疏矩阵

二、广义表

1.广义表基础

1.1 广义表的定义

1.2 广义表的存储结构


前言

        多维数组和广义表是一种复杂的非线性结构,它们的逻辑特征是:一个数据元素可能有多个直接前趋和直接后继。

        多维数组可以看成是线性表的推广。因为一旦确定数组是按行或按列优先顺序存储之后,每个数组元素之间的关系就同一维数组一样变成线性的了。因此,只要弄清楚多维数组按行优先顺序存储结构之后,它的运算就同线性表的运算类似。


一、多维数组

1.多维数组定义及顺序存储

1.1 多维数组的定义

        数组是我们比较熟悉的一种数据类型。由于数组中各元素具有相同的数据类型,并且数组元素的下标一般具有固定的上界和下界,因此,数组的处理比其他复杂的结构较为简单。当数组维数为1时,数组是一种元素个数固定的线性表,而维数大于1时,称为多维数组,它可以看成是线性表的推广。这里仅讨论多维数组。
        由于对数组一般不做插入和删除操作,因此数组一旦建立,结构中的元素个数和元素间的关系就不再发生变化。所以,一般都是采用顺序存储的方法来表示数组

        多维数组是一种复杂的数据结构。以二维数组为例,数组元素之间的关系除了边界元素外,每个元素a_{ij}都恰好有两个直接前趋和两个直接后继:行向量上的直接前趋是a_{ij-1}a_{ij+1},列向量上的直接前趋是a_{i-1j}和直接后继a_{i+1j}。并且二维数组也只有一个开始结点a_{00},它没有前趋;仅有一个终端结点a_{m-1n-1},它没有后继。此外,

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿力觉醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值