串、多维数组和广义表
内容:
1.多维数组与矩阵的压缩:
一维数组可以看成是一个线性表或一个向量
二维数组可以看作数据元素是一维数组的线性表
多维数组是特殊的线性表
对称矩阵压缩:设一个n阶方阵,元素关于对角线对称,则元素总量为n( n + 1 )/2
上下三角矩阵:
(1)下三角数组下标关系:k=i(i+1)/2+j
(2)上三角数组下标关系:k=i(2n-i+1)/2+j-i
对角矩阵:三对角矩阵的下标关系:k=2i + j
(下标都从0开始的)
稀疏矩阵:利用三元组进行压缩存储
2.广义表
Head操作:取广义表的表头
Tail操作:取去除表头的广义表
PS:广义表LS:(a1, a2, a3, a4)
Head(LS)=a1
Tail(LS)=( a2, a3, a4)
题目:
设W为一个二维数组,其每个数据元素占用4个字节,行下标i从0到7 ,列下标j从0到3 ,则二维数组W的数据元素共占用____128___个字节。W中第6行的元素和第4 列的元素共占用__44__个字节。若按行顺序存放二维数组W,其起始地址为100,则二维数组元素W[6][3]的起始地址为__________。
有n个数存放在一维数组A[n](下标从1开始)中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度不同。(有序比无序大)
数组是一种复杂的数据结构,数组元素之间的关系既不是线性的,也不是树形的。(一维数组的元素关系是线性的,但二维不是)
设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为19
假设以行序为主序存储二维数组A[100][100],行下标和列下标均从1开始,设每个数据元素占2个存储单元,基地址为10,则LOC[5][5]=818
难度不高,主要在计算上,不要出错,记住公式就行,要验算几遍