資料結構 (稀疏矩陣)

2021-10-04 02:53:04 字數 1791 閱讀 4027

使用三元組儲存乙個稀疏矩陣,函式實現稀疏矩陣的輸入,稀疏矩陣的輸出,稀疏矩陣的轉置,兩個稀疏矩陣的加法

#include

#include

#include

using namespace std;

#define m 10

#define n 10

typedef

int datatype;

typedef

struct

trunode;

//三元組定義

#define max_num 1024

typedef

struct

trumatrix;

//三元組表的儲存型別

void

input

(trumatrix *

&a,int m,

int n)

a->num = k;

}//三元組形式輸出

void

output

(trumatrix *a)

//矩陣形式輸出

void

output

(trumatrix *a)

}void

trans

(trumatrix *a)

} cout <<

"轉置後以三元組形式輸出:"

<< endl;

output

(c); cout << endl;

cout <<

"轉置後以二維矩陣形式輸出:"

<< endl;

output

(c); cout << endl;

}void

addtsm

(trumatrix *a, trumatrix *b)

/* 三元組表示的稀疏矩陣加法: c=a+b */

c->rows = a->rows; c->cols = a->cols;

while

(ap <= a->num && bp <= b->num)

}else

if(ai < bi)

}else

if(ai == bi)

else

if(aj < bj)

else

if(aj == bj)

++ap;

++bp;}}

}//以上為稀疏矩陣a或b中的元素完全加完的情況

//以下為稀疏矩陣a或b中的元素部分剩餘的情況

while

(ap <= a->num)

while

(bp <= b->num)

c->num=

--cp;

output

(c);

cout <<

"二維矩陣形式輸出:"

<< endl;

output

(c);

}void

main()

測試:

輸入&輸出:

稀疏矩陣轉置:

稀疏矩陣相加:

emmmmm相加子函式記得好像存在億點點問題……

資料結構 稀疏矩陣

稀疏矩陣 矩陣中有效資料的個數遠遠小於無效資料的個數,則可以稱之為稀疏矩陣 如果還像以前那樣將每個稀疏矩陣的資料都儲存起來,則會造成記憶體的很大程度的浪費,所以應用特別的儲存方式。稀疏矩陣的壓縮儲存 使用 三元組儲存每乙個有效資料,三元組按原矩陣中的位置,以行優先順序先後順序依次存放。矩陣的轉置 將...

資料結構 稀疏矩陣

簡單的說,設矩陣amn中有s個非零元素,若s遠遠小於矩陣元素的總數,則稱a為稀疏矩陣。s與m x n的比稱為矩陣的稀疏因子。當用陣列儲存稀疏矩陣中的元素時,僅有少部分的空間被利用,造成空間的浪費,為了節省儲存空間,可以採用一種壓縮的儲存方法來表示稀疏矩陣。由於非零元素的分布一般是沒有規律的,因此在儲...

資料結構 稀疏矩陣

稀疏矩陣時矩陣中的一種特殊情況,其非零元素的個數遠遠小於零元素個數。1.順序儲存 非零元素三元組的結構定義 struct triple 其中row代表行號,col代表列號,val用來儲存元素值 稀疏矩陣的順序儲存型別定義 struct smatrix m,n,t域分別用來儲存稀疏矩陣的行數,列數,非...