特殊矩阵、稀疏矩阵表示方式(三元组、伪地址法、邻接表示、十字链式)

您所在的位置:网站首页 邻接矩阵表示法的特点是什么 特殊矩阵、稀疏矩阵表示方式(三元组、伪地址法、邻接表示、十字链式)

特殊矩阵、稀疏矩阵表示方式(三元组、伪地址法、邻接表示、十字链式)

2024-06-01 06:23| 来源: 网络整理| 查看: 265

一、概念

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

国外:矩阵中绝大多数元素都为0的矩阵称为稀疏矩阵。

二、特殊矩阵存储

一般的特殊矩阵是:对称矩阵、上三角矩阵、下三角矩阵、对角矩阵。

特殊矩阵存储这里列,上、下三角矩阵的存储。对称矩阵是按角对角线对称。

由对称矩阵A[i][j] = A[j][i],所以我们只需要保存一份即可,所需储存空间为(1+n)*n/2, 需要保存的元素为:

A(0,0) A(1,0) A(1,1) A(2,0) A(2,1) A(2,2) .... A(n,0) A(n,1) A(n,2) .... A(n,n)

按照行优先来存储,保存在一维数组中。

分析:矩阵A中要储存元素个数是n(n+1)/2个,因为每行成等差数列。

结果如下:每一个元素对应一维数组的位置  i*(i+1)/2+j ,  i 表示行数,j 表示列数。

保存元素:A(0,0) A(1,0) A(1,1) ... A(n-1,0) A(n-1,1) A(n-1,2) .... A(n-1,n-1) 数组下标: 0 1 2 ... n*(n-1)/2 n*(n-1)/2+1 n*(n-1)/2+2 n*(n+1)/2-1 #include int MaxSize; int A[10][10]; int saveArr[100]; //初始化数组 void init() { for(int i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3