資料結構之自建演算法庫 稀疏矩陣的三元組表示

2021-09-23 17:49:51 字數 2194 閱讀 6577

本文針對資料結構基礎系列網路課程(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...