1.数组
数组是定长线性表在维数上的扩张,即线性表中的元素又是一个线性表。
1.1 数组的存储地址
一维数组a[n],a[i]的存储地址为:a+ilen
二维数组a[m][n],a[i][j]按行存储:a+(in+j)len
二维数组a[m][n],a[i][j]按列存储:a+(jm+i)len
**例:**已知5行5列的二维数组a中的各元素占两个字节,元素a[2][3]按行有限存储的存储地址为:a+(25+3)*2
2.矩阵
2.1稀疏矩阵
稀疏矩阵:一个矩阵中大量的元素为0,只需存储数组的一部分内容即可完成对整个数组的存储。
计算某元素对应一维数组的下标:
上三角矩阵(2n-i+1)*i/2+j
下三角矩阵(i+1)*i/2+j
应考技巧:特殊值代入法
i=0,j=0时M=1,i=1,j=1时M=3所以选A
3.广义表
广义表是线性表的推广,是n个表元素组成的有限序列
LS1 = (a,(b,c),(d,e))
长度:广义表包含元素的个数,长度为3
深度:广义表的嵌套层数,深度为2
取表头运算:最外层的第一个表元素head(LS1) = a
取表尾运算:除了表头以外的其他所有元素组成的广义表tail(LS1)= ((b,c),(d,e))
取字母操作:将b取出,head(head(tail(LS1)))