/*
* 檔名稱:cpp1.
* 作 者:劉思源
* 完成日期:2017 年 10 月 22 日
* 版 本 號:v1.0
** 問題描述:建立稀疏矩陣三元組表示的演算法庫,包括:
① 頭文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函式,測試上面實現的演算法
* 輸入描述:無需輸入
* 程式輸出:實現各種演算法的函式的測試結果*/
[cpp]view plain
copy
#include
#include "tup.h"
intmain()
, ,
, ,
,
};
creatmat(t,a);
printf("b:\n"
);
dispmat(t);
if(assign(t,x,2,5)==
true
) //呼叫時返回true
printf("assign(t,x,2,5)=>x=%d\n"
,x);
else
//呼叫時返回false
printf("assign(t,x,2,5)=>引數錯誤\n"
);
value(t,y,2,5);
printf("執行value(t,10,2,5)\n"
);
if(assign(t,x,2,5)==
true
) //呼叫時返回true
printf("assign(t,x,2,5)=>x=%d\n"
,x);
else
//呼叫時返回false
printf("assign(t,x,2,5)=>引數錯誤\n"
);
printf("b:\n"
);
dispmat(t);
trantat(t,tb);
printf("矩陣轉置tb:\n"
);
dispmat(tb);
return
0;
}
[cpp]view plain
copy
#ifndef tup_h_included
#define tup_h_included
#define m 6
#define n 7
#define maxsize 100 //矩陣中非零元素最多個數
typedef
intelemtype;
typedef
struct
tupnode; //三元組定義
typedef
struct
tsmatrix; //三元組順序表定義
void
creatmat(tsmatrix &t,elemtype a[m][n]);
//從乙個二維稀疏矩陣建立其三元組表示
bool
value(tsmatrix &t,elemtype x,
inti,
intj);
//三元組元素賦值
bool
assign(tsmatrix t,elemtype &x,
inti,
intj);
//將指定位置的元素值賦給變數
void
dispmat(tsmatrix t);
//輸出三元組
void
trantat(tsmatrix t,tsmatrix &tb);
//矩陣轉置
#endif // tup_h_included
[cpp]view plain
copy
#include "stdio.h"
#include "tup.h"
void
creatmat(tsmatrix &t,elemtype a[m][n])
//從乙個二維稀疏矩陣建立其三元組表示
} } bool
value(tsmatrix &t,elemtype x,
inti,
intj)
//三元組元素賦值
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,
inti,
intj)
//將指定位置的元素值賦給變數
void
dispmat(tsmatrix t)
//輸出三元組
void
trantat(tsmatrix t,tsmatrix &tb)
//矩陣轉置
} }
執行結果:
第八周專案4 稀疏矩陣的三元組的實現與應用
檔名稱 cpp1.作 者 劉思源 完成日期 2017 年 10 月 22 日 版 本 號 v1.0 問題描述 採用三元組儲存稀疏矩陣,設計兩個稀疏矩陣相加的運算演算法 提示1 兩個行數 列數相同的矩陣可以相加 提示2 充分利用已經建立好的演算法庫解決問題 提示3 教材例6.3已經給出兩個稀疏矩陣相加...
第八周 專案4 稀疏矩陣的三元組表示的實現及應用
define m 6 define n 7 define maxsize 100 矩陣中非零元素最多個數 typedef int elemtype typedef struct tupnode 三元組定義 typedef struct tsmatrix 三元組順序表定義 void creatmat ...
第八周專案3 稀疏矩陣的三元組表示的實現及應用
標頭檔案 tup.h ifndef tup h included define tup h included define m 6 define n 7 define maxsize 100 矩陣中非零元素最多個數 typedef int elemtype typedef struct tupnod...