【C# 数据结构】数组 广义表 稀疏矩阵
数组
数组是一种数据集合,数据元素按次序存储于一个地址连续的内存空间中。数组是其他数据结构实现顺序存储的基础。
线性表结构可以具有弹性,既可以是简单的数组,也可以扩展为复杂的数据结构----广义表
逻辑上数组可以看成二元组<下标,值>,哈希表也是二元组<健,值>
C#语言中,数组都是在运行时分配所需要的空间。
一维数组
则第i个教据元素的地址为:
addr(ai)=addr(a0)+i*c //addr(a0)为数组的首地址 C为每个元素占用c个存储单元
根据数组元素的下标就可计算出该元素的存储地址,因而可 存取数组元素的值,并且该操作的复杂度是O(1),具有这种特性的在储结构称为随机存储结构,数组是一种随机存储结构。
二维数组
二维数组表示数组的数组,二维数组常用来表示一个矩阵,由于存储的效率低,所有经常采用稀疏矩阵来压缩
Am×n表示由m×n个元素ai,j组成的矩阵,可以看成是由m行一维数组组成的(行)数组,或是n列一维数组组成的(列)数组。
矩阵Am×n也可以视为一种特殊的双重线性表,矩阵中的每个元素ai,j同时属于两个纡性表:第i行的线性表和第j列的线性表。
二维数组的顺序存储结构具有随机存储特性,对数组元素进行随机存取的时间复杂度为O(1)。
稀疏矩阵
当矩阵的非零元素只占据总元素的10%时,这类矩阵就叫稀疏矩阵(sparse matrix)。用矩阵的随机存储特性换取稀疏矩阵的压缩空间。
编程是个人爱好