(三)、矩阵

一般用二维数组 int A[m][n];

数据结构(知识点碎片十二)_对角矩阵

相同的元素或者零元素在矩阵中的分布存在一定规律的矩阵称之为特殊矩阵,反之称之为稀疏矩阵。

1. 特殊矩阵

  • 对称矩阵

矩阵中的元素满足ai,j= aj,i 的矩阵称之为对称矩阵(矩阵必须是方阵)。

数据结构(知识点碎片十二)_特殊矩阵_02

用一维数组存储对称矩阵可只存上三角或下三角部分

数据结构(知识点碎片十二)_对角矩阵_03

  • 三角矩阵

所谓上三角矩阵(upper triangular matrix),是指矩阵的下三角部分中的元素均为常数c的n阶方阵。同样,下三角矩阵(lower triangular matrix)是指矩阵的上三角部分中的元素均为常数c的n阶方阵。
如下图,左为下三角矩阵;右为上三角矩阵

数据结构(知识点碎片十二)_特殊矩阵_04

三角矩阵用一维数组存储(以上三角矩阵为例)

数据结构(知识点碎片十二)_特殊矩阵_05

  • 对角矩阵

若一个n阶方阵A满足其所有非零元素都集中在以主对角线为中心的带状区域中,则称其为n阶对角矩阵(diagonal matrix)。其主对角线上、下方各有b条非零元素构成的次对角线,称b为矩阵半带宽,(2b+1)为矩阵的带宽。对于半带宽为b(0≤b≤(n-1)/2)的对角矩阵,其|i-j|≤b 的元素ai,j不为零,其余元素为零。

数据结构(知识点碎片十二)_对角矩阵_06

对于一个按照行优先存储的三对角矩阵,求出第i行带状区域内第一个元素X在一维数组中的下标,假设c存在数组最后一位。

  1. 当i等于1时,带状区域内第一个元素为矩阵中第一个元素,其在一维数组中下标为0;
  2. 当i大于1时,第i行之前的元素个数为2+(i-2)x3,则带状区域内第一个元素X在一维数组中的下标为2+(i-2)x3.

数据结构(知识点碎片十二)_对称矩阵_07