/*
檔名稱:稀疏矩陣的三元組表示的實現及應用.cpp
作 者:肖博文
完成日期:2023年10月27日
版 本 號:v1.0
問題描述: (1)建立稀疏矩陣三元組表示的演算法庫,包括:
① 頭文tup.h,定義資料型別,宣告函式;
② 原始檔tup.cpp,實現稀疏矩陣三元組表示的基本運算,主要演算法包括:
void creatmat(tsmatrix &t,elemtype a[m][n]); //從乙個二維稀疏矩陣建立其三元組表示
bool value(tsmatrix &t,elemtype x,int i,int j); //三元組元素賦值
bool assign(tsmatrix t,elemtype &x,int i,int j); //將指定位置的元素值賦給變數
void dispmat(tsmatrix t); //輸出三元組
void trantat(tsmatrix t,tsmatrix &tb);//矩陣轉置
③ 設計main函式,測試上面實現的演算法
輸入描述:若干測試資料。
程式輸出:三元組對應操作的輸出。
*/
tup.h
#include "stdio.h"
#define m 6
#define n 7
#define maxsize 100 //矩陣中非零元素最多個數
typedef int elemtype;
typedef struct
tupnode; //三元組定義
typedef struct
tsmatrix; //三元組順序表定義
void creatmat(tsmatrix &t,elemtype a[m][n]); //從乙個二維稀疏矩陣建立其三元組表示
bool value(tsmatrix &t,elemtype x,int i,int j); //三元組元素賦值
bool assign(tsmatrix t,elemtype &x,int i,int j); //將指定位置的元素值賦給變數
void dispmat(tsmatrix t);//輸出三元組
void trantat(tsmatrix t,tsmatrix &tb);//矩陣轉置原始檔tup.cpp
#include"tup.h"
//tsmatrix儲存行的個數、列的個數、及非0的個數、tupnode陣列(包含每個元素的row,col和實際值)
void creatmat(tsmatrix &t,elemtype a[m][n])//從乙個二維稀疏矩陣建立其三元組表示
int k=0,k1;
while(kt.data[k].r)
while(kt.data[k].c)
if (t.data[k].r==i && t.data[k].c==j) //存在這樣的元素
t.data[k].d=x;
else
t.data[k].r=i;
t.data[k].c=j;
t.data[k].d=x;
t.nums++;
return true;
} } //三元組元素賦值
bool assign(tsmatrix t,elemtype &x,int i,int j)
int k=0;
while(kt.data[k].r&&j>t.data[k].c)
k++;
} if(t.data[k].r==i&&t.data[k].c==j)
else x=0;
return true;
} //將指定位置的元素值賦給變數
void dispmat(tsmatrix t)
執行結果:
知識點總結:稀疏矩陣的三元組表示方法
第九周專案三稀疏矩陣的三元組表示
檔名稱 main.cpp,tup.cpp,tup.h 完成日期 2015年10月31日 版本號 codeblocks 問題描述 稀疏矩陣的三元組表示相關的演算法庫採用程式的多檔案組織形式 輸入描述 無 程式輸出 見執行結果 ifndef tup h included define tup h inc...
第九周專案3 (1)稀疏矩陣的三元組表示
問題及 1 tup。cpp include stdio.h include tup.h void creatmat tsmatrix t,elemtype a m n 從乙個二維稀疏矩陣建立其三元組表示 t.data k r i t.data k c j t.data k d x t.nums re...
第九周專案3 稀疏矩陣的三元組表示的應用
檔名稱 第9周專案3 稀疏矩陣的三元組表示的應用 3.2 cpp 作 者 高露 完成日期 2015年11月6日 版 本 號 v1.0 問題描述 採用三元組儲存稀疏矩陣,設計兩個稀疏矩陣相加的運算演算法 輸入描述 兩個稀疏矩陣 程式輸出 相加運算後的結果。include define n 4 defi...