数据结构之数组

北航软件工程专业考研991数据结构总结:

三、数组
1.一维数组和二维数组的存储;
2.矩阵的压缩存储的基本概念;
3.对称矩阵、对角矩阵以及三角矩阵的压缩存储。

数组:序列和值的偶对

1、一位数组和二维数组的存储

一维数组的存储:a[1] + (n-1) i

二维数组的存储:
 
    行序存储:按行存储,先存第一行  a[i][j] = a[1][1] + (i-1)n + j-1
    
    列序存储:按列存储,先存第一列  a[i][j] = a[1][1] + (j-1)m + i-1
    
2、矩阵的压缩存储的基本概念

对多个值相同的元素或者分布有规律的元素分配尽可能少的空间,而对0元素不分配存储空间

3、对称矩阵,对角矩阵以及三角矩阵的压缩存储

  对称矩阵:a[i][j] = a[j][i]  0 <= i,j <= n 
  存储方式:只存储对角线和对角线右上三角的元素,需要 n(n+1)/2 个存储空间  1 + 2 +...+n 
  元素读取: i > j   i*(i-1)/2 + j-1 
             j > i   j*(j-1)/2 + i-1 
             

  对角矩阵:非0元素集中在主对角线两边,其余元素为0
  以3对角矩阵举例:元素有 n + n-1 + n-1 = 3n-2 个元素
  存储方式:按行存储,不分配0元素
  元素读取:2 * i + j - 3
  
  稀疏矩阵:0元素较多的矩阵
  存储方式:三元组 (i, j, v),第i行j列值为v的元素
  特殊的三元组:(m,n,t),表示总行数m,总列数n,总非0元素的个数
  t个非0元素的稀疏矩阵用 t+1 个三元组表示,其中,第一个表示总行数,列数,总非0元素的个数,第二个到t+1个表示t个非0元素的信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章