稀疏矩陣的三元組儲存結構的實現課設

2021-10-01 18:35:51 字數 1477 閱讀 2735

題目描述

設計並實現稀疏矩陣的三元組儲存結構,並完成如下操作。

稀疏矩陣顯示。

根據行列值,顯示元素值。

矩陣加法。

矩陣減法。

矩陣乘法。

#include#include#includeusing namespace std;

#define maxsize 100 //元素的個數最多為100個

#define n 30 //二維陣列的列數最多為30

typedef struct

triple;

typedef struct

ts;ts createtriple(int m, int n) //構造乙個三元組順序表儲存矩陣

void tripletoarray(ts t, int a[n], int m, int n)//三元組順序表轉換為二維陣列

else //二者相加 }

if (i == a.tu) //a結束,若b還有元素,則將b的元素直接放入c中

} else //b結束,若a還有元素,則將a的元素直接放入c中 }

c.mu = a.mu;

c.nu = a.nu;

c.tu = k;

return c;

}ts subsmatrix(ts a, ts b) //三元組順序表 矩陣相減

else if ((a.data[i].x > b.data[j].x) || ((a.data[i].x == b.data[j].x) && (a.data[i].y > b.data[j].y))) //將b的元素直接放入c中

else //二者相減 }

if (i == a.tu) //a結束,若b還有元素,則將b的元素直接放入c中

} else //b結束,若a還有元素,則將a的元素直接放入c中 }

c.mu = a.mu;

c.nu = a.nu;

c.tu = k;

return c;

}ts multsmatrix(ts a, ts b)//三元組順序表矩陣乘法

}} c.tu = p;

} return c;

}void menu()

cout<<"列: ";

cin>>q;

triple2 = createtriple(k, q); //構造乙個三元組順序表儲存矩陣

tripletoarray(triple2, b, k, q);//三元組順序表轉換為二維陣列

cout<<"矩陣b為:"<>m;

cout<<"列: ";

cin>>n;

if(m!=n)

cout<<"請輸入第乙個矩陣:"<>ch;

if(ch=='n'||ch=='n') exit(0);

}while(ch=='y'||ch=='y');

return 0;

}

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

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

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

該資料結構的操作主要是陣列的相加 和相乘,這兩個演算法全是我個人所寫,絕無參考,經測試應該少有bug a.h include define false 0 define true 1 define ok 1 define error 0 define max size 100 typedef int...

稀疏矩陣的三元組儲存演算法

稀疏矩陣,是零元素較多的矩陣。一般只要滿足 t 1 3 m n,t是非零元素個數,mn是矩陣行列數,就可以用三元組表示稀疏矩陣,可以節省空間。稀疏矩陣的壓縮儲存採用三元組的方法實現。其儲存規則是 每乙個非零元素佔一行,每行中包含非零元素所在的行號 列號 非零元素的數值。為完整描述稀疏矩陣,一般在第一...