矩阵的压缩存储
所有的矩阵你都可以通过推导得出其在一位数组或者链表中的关系。
(一).对称矩阵压缩:
(二)下三角和上三角矩阵:
解释: 下三角矩阵在后面加一个C表示为0即可,
只要算到上三角空白区域就去C中的值。
(三)对角矩阵:
(四)稀疏矩阵的压缩存储:
引入三元组:行号, 列号, 非零元素值:
利用顺序存储方式:
可以用结构体也可用类封装:
(五)十字链表:
适用于十字链表需要频繁修改的时候
含义:
图解:
C++类定义:
.h文件:
#pragma once
#include<iostream>
using namespace std;
#include <string>
#define Max 100
#define ERROR 0
#define OK 1
typedef struct //三元组
{
int line; //行
int row; //列
int item; //值
}Trip;
class TripMN
{
private:
Trip dat[Max];
int L, R, num; //行 ,列, 非零元个数
public:
TripMN() //自我构造
{
L = 0;
R = 0;
num = 0;
}
TripMN(int m, int n) //创建对象时完成对属性的初始化
{
L = m;
R = n;
num = 0;
}
~TripMN()
{