第9周 專案3 稀疏矩陣的三元組表示的實現及應用

2021-07-06 04:34:26 字數 2927 閱讀 2590

/* 

*檔名稱:1.pp

*完成日期:2023年10月30日

*問題描述:稀疏矩陣的三元組表示的實現及應用 */

(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函式,測試上面實現的演算法
#include "stdio.h"

#define tup_h_included

#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);//矩陣轉置

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++;

}return true; //成功時返回true

}bool assign(tsmatrix t,elemtype &x,int i,int j) //將指定位置的元素值賦給變數

void dispmat(tsmatrix t) //輸出三元組

執行結果:

(2)採用三元組儲存稀疏矩陣,設計兩個稀疏矩陣相加的運算演算法

#include "stdio.h"

#define tup_h_included

#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);//矩陣轉置

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++;

}return true; //成功時返回true

}bool assign(tsmatrix t,elemtype &x,int i,int j) //將指定位置的元素值賦給變數

void dispmat(tsmatrix t) //輸出三元組

{ int i;

if (t.nums<=0) //沒有非零元素時返回

return;

printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums);

printf("\t------------------\n");

for (i=0; i

執行結果:

第9周 專案3(1)建立稀疏矩陣三元組表示的演算法庫

問題及 煙台大學計控學院 作 者 孫啟先 完成日期 2016年10月27日 問題描述 建立稀疏矩陣三元組表示的演算法庫,包括 頭文tup.h,定義資料型別,宣告函式 原始檔tup.cpp,實現稀疏矩陣三元組表示的基本運算,主要演算法包括 void creatmat tsmatrix t,elemty...

第8周 專案3 稀疏矩陣的三元組表示的實現及應用

all right reserved.檔名稱 20171207.cpp 完成日期 2017年12月07日 版本號 v1.1 問題描述 如下 輸入描述 功能需求 程式輸出 所需功能的實現 1 建立稀疏矩陣三元組表示的演算法庫,包括 頭文tup.h,定義資料型別,宣告函式 原始檔tup.cpp,實現稀疏...

第九周專案三稀疏矩陣的三元組表示

檔名稱 main.cpp,tup.cpp,tup.h 完成日期 2015年10月31日 版本號 codeblocks 問題描述 稀疏矩陣的三元組表示相關的演算法庫採用程式的多檔案組織形式 輸入描述 無 程式輸出 見執行結果 ifndef tup h included define tup h inc...