本文針對資料結構基礎系列網路課程(5):陣列與廣義表中第3課時稀疏矩陣的三元組表示。
1.標頭檔案:tup.h,包含定義稀疏矩陣的三元組表示資料結構的**、巨集定義、要實現演算法的函式的宣告;
#ifndef tup_h_included
#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);//矩陣轉置
#endif // tup_h_included
2.原始檔:tup.cpp,包含實現各種演算法的函式的定義
#include "stdio.h"
#include "tup.h"
void creatmat(tsmatrix &t,elemtype a[m][n]) //從乙個二維稀疏矩陣建立其三元組表示
}}bool value(tsmatrix &t,elemtype x,int i,int j) //三元組元素賦值
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) //輸出三元組
void trantat(tsmatrix t,tsmatrix &tb) //矩陣轉置}}
#include
#include "tup.h"
int main()
, ,,,
,};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;
}
資料結構之自建演算法庫 稀疏矩陣的三元組表示
1.標頭檔案 tup.h,包含定義稀疏矩陣的三元組表示資料結構的 巨集定義 要實現演算法的函式的宣告 ifndef tup h included define tup h included define m 6 define n 7 define maxsize 100 矩陣中非零元素最多個數 ty...
資料結構之自建演算法庫 雙鏈表
本文針對資料結構基礎系列網路課程 2 線性表中第12課時雙鏈表。雙鏈表演算法庫演算法庫採用程式的多檔案組織形式,包括兩個檔案 1.標頭檔案 dlinklist.h,包含定義雙鏈表資料結構的 巨集定義 要實現演算法的函式的宣告 ifndef dlinklist h included define dl...
資料結構之自建演算法庫 順序棧
本文針對資料結構基礎系列網路課程 3 棧和佇列中第3課時棧的順序儲存結構及其基本運算實現。順序棧演算法庫採用程式的多檔案組織形式,包括兩個檔案 1.標頭檔案 sqstack.h,包含定義順序棧資料結構的 巨集定義 要實現演算法的函式的宣告 ifndef sqstack h included defi...