稀疏矩陣轉置 資料結構

2021-10-05 21:41:18 字數 1321 閱讀 2927

description:

輸出稀疏矩陣的轉置矩陣。(行列均不大於20)

input:

第一行輸入兩個正整數n和m,分別表示矩陣的行數和列數,

然後輸入矩陣三元組,最後輸入(0 0 0)表示結束輸入。

output:

轉置後的矩陣。

sample input :

4 41 1 1

2 1 2

3 2 3

0 0 0

sample output:

1 1 1

1 2 2

2 3 3

直接上**:

#include

using

namespace std;

#define maxsize 100

typedef

struct

triple;

//三元組定義

typedef

struct

tsmatrix;

//三元組順序表定義

void

found

(tsmatrix& q,

int is,

int js)

//記錄矩陣的行數和列數

void

input

(tsmatrix& q,

int i,

int j,

int data,

int& o)

//輸入三元組

q.m[q.num]=;

//賦值

q.num++

;//統計三元組個數

}void

transpose

(tsmatrix& q,tsmatrix& p)

;o)//陣列所有元素置0

for(

int j

;j)//用num陣列統計轉置前三元組每列非零元素的個數

for(

int i

;i1;i++

)//用cpos陣列統計轉置前三元組前i列非零元素的總個數

for(

int i

,n,m;i//遍歷轉置前三元組的同時對比cpos陣列,將元素放入轉置後三元組的指定位置

cpos[n]++;

}}void

output

(tsmatrix p)

//按要求輸出

;iintmain()

transpose

(q,p)

;output

(p);

return0;

}

資料結構 稀疏矩陣轉置

我們來看看這個矩陣,五行五列,可以包含二十五個元素,但是此矩陣只有七個元素。但是我們在存放資料的時候分配了二十五塊int單元。這樣是不是有點太 浪費了。如果我們只儲存這七個元素我想會節省一部分記憶體空間。但是如果我們只儲存矩陣中的元素還是不行的,因為只有元素我們就無法還原矩陣,我們還需要此 元素的行...

資料結構 稀疏矩陣的轉置

熟悉稀疏矩陣的三元組順序儲存方式。稀疏矩陣如圖所示,輸出矩陣和三元組錶用轉置演算法 求轉置矩陣並輸出轉置後的矩陣和三元組表 初始矩陣為 n dispmatrix mm printf 矩陣的三元組順序表為 n dispmat mm printf n n tsmatrix t trantat mm,t ...

《資料結構》複習之稀疏矩陣(矩陣轉置)

矩陣在資料結構中常用二維陣列 int a m n m為列的元素個數,n為行的元素個數 表示,這也是最簡單的表示方法。然而當矩陣中含有大量0元素時,也稱為稀疏矩陣,這樣的表示方法會浪費大量的儲存空間,為了節省儲存單元,最好只存非零元素。常用的儲存稀疏矩陣的方法有順序儲存和鏈式儲存兩種,這裡只介紹順序儲...