数组和广义表

2018-03-30  本文已影响0人  Re丶Allen

数组,所有的程序设计语言学习之初都有它的身影。根据数组中存储的数据元素之间的逻辑关系,可以将数组分为 : 一维数组、二维数组、…、n维数组。

数组 线性表

数组和顺序表的本质不同。数组作为一种数据类型,作用是将类型相同的数据存储在一整块内存中,数组中存储的数据之间没有任何逻辑关系,谁也不认识谁。

顺序表作为线性表的存储结构,存储的这些数据元素在物理存储结构上相邻的同时,在逻辑结构上也相邻,每个数据元素都清楚地知道紧挨着它的前边的元素和后边的元素。

如果用一句话来描述两者之间的关系,就是:用数组来存储的线性表是顺序表。

在数组中调取数据元素

在n维数组中调取数据元素,需要知道以下因素:
数组存放的起始位置(也就是数组中第一个元素的存储位置)。
被调取元素在 n 维数组中的具体位置(例如,二维数组需要知道被调取元素 aij 在数组中的行标 i 和列标 j )。
数组中单个数据元素占用的内存空间,一般用 L 表示(数组中存放的数据的类型都一样)。

如果在以行序存储的二维数组 anm 中查找某个数据元素 aij 的存储位置,方法是:

矩阵压缩存储(十字链表、三元组顺序表、行逻辑衔接的顺序表)

需要进行压缩的矩阵主要分为两大类:

上一篇 下一篇

猜你喜欢

热点阅读