資料結構嚴蔚敏 稀疏矩陣的三元組表示

2021-09-06 16:28:12 字數 1230 閱讀 3883

程式語言:c

編譯環境:dev-c++

題目:輸入稀疏矩陣,建立稀疏矩陣三元組順序結構,實現轉置

先來了解一下稀疏矩陣和三元組的關係:

稀疏矩陣的概念是:乙個m行n列的矩陣,若它的非零元個數特別少,即可稱它為稀疏矩陣

如何進行稀疏矩陣的壓縮儲存呢?

只儲存稀疏矩陣的非零元。除了儲存非零元的值a以外,還必須記下它的行下標i和列下標j

反之,乙個三元組(a,i,j)唯一確定矩陣的乙個非零元

因此,乙個稀疏矩陣可由乙個三元組陣列和該矩陣的行列數來確定

稀疏矩陣的三元組順序表儲存表示:

#define maxsize 12500//假設非零元個數的最大值為12500

typedef structtriple;

typedef structtsmatrix;

矩陣的轉置:

(1)將矩陣的行列值相互交換

(2)將每個三元組中的i和j相互調換

(3)重排三元組之間的次序

其中第三步是關鍵

源**:

#include#include#define ok 1

typedef int status;

typedef int elemtype;

//稀疏矩陣的三元組順序表儲存表示

#define maxsize 12500//假設非零元個數的最大值為12500

typedef structtriple;

typedef structtsmatrix;

//建立矩陣

status createtsmatrix(tsmatrix *m)

//輸出矩陣

status printtsmatrix(tsmatrix m)

printf("行數為%d,列數為%d\n",m.mu,m.nu);

if(m.tu==0)

int k;

for(k=1;k<=m.tu;k++)

printf("%d\t%d\t%d\n",m.data[k].i,m.data[k].j,m.data[k].e);

return ok;

}//矩陣的轉置

status transposetsmatrix(tsmatrix m,tsmatrix *t)

} }return ok;

}//主函式測試

int main()

資料結構 三元組實現稀疏矩陣的儲存

三元陣列從左向右儲存依次為row 行號 clumn 列號 元素值 value 儲存稀疏矩陣的非0元素。from scipy import sparse help sparse 定義節點類 class triplenode object def init self,row 0,column 0,val...

資料結構習題 稀疏矩陣加法 三元組順序表

以下為功能函式的 define maxsize 12500 最大非零元素 typedef int elemtype typedef struct tripletriple 三元組結點定義 typedef struct tsmatrixtsmatrix 三元組順序表定義 將矩陣m和矩陣t相加的結果儲存...

資料結構課程設計稀疏矩陣的三元組儲存

利用c c 語言進行程式設計,並規範地完成課程設計報告。通過課程設計,鞏固和加深對線性表 棧 佇列 字串 樹 圖 查詢 排序等理論知識的理解 掌握現實複雜問題的分析建模和解決方法 包括問題描述 系統分析 設計建模 實現 結果分析等 提高利用計算機分析解決綜合性實際問題的基本能力。設計並實現稀疏矩陣的...