数组
数组的逻辑结构
数组可以看作是线性表的推广,其特点是结构中的元素本身可以是有某种结构的数据元素,但属于同一类型。
数组是一个具有固定格式和数量的有序集,每一个元素都有唯一下标标识,因此,数组不能做插入或删除元素的操作。
数组操作
数组的内存映像
数组在内存中被映像为向量,即用向量作为数组的一种存储结构,这是因为内存的地址空间是唯一的。一旦数组的行列固定后,通过一个映像函数,便可以根据数组元素下标找到它的存储地址。
特殊矩阵的压缩存储
数据通常是用矩阵来组织的。对角矩阵、三对角矩阵、三角矩阵(上下三角)、对称矩阵……
稀疏矩阵
设MxN矩阵中有t个非零元素且t<<mn,这样的矩阵叫稀疏矩阵
稀疏矩阵的三元组表存储
将三元组按行优先的顺序,同一行中序列号从小到大的规律排列成一个线性表,成为三元组表,采用这样顺序存储方法的存储该表。
矩阵加减乘除……
稀疏矩阵的链式存储
单向链表表示:
稀疏矩阵的十字链表存储
row | col | val |
---|---|---|
row 域存储非零元素行号 | col域存储非零元素列号 | val域存储该元素值 |
down | right |
---|---|
down指针(同列行从小—大) | right指针(同行列号小—大) |