資料結構之 C語言實現稀疏矩陣

2021-07-02 23:01:34 字數 782 閱讀 1669

//稀疏矩陣三元組順序表儲存表示

//楊鑫

#include #include #define maxsize 100

typedef int elemtype;

typedef struct

triple;

typedef struct

tsmatrix;

// 建立稀疏矩陣m

int createsmatrix(tsmatrix *m)

{ int i,m,n;

elemtype e;

int k;

printf("請輸入矩陣的行數, 列數, 非零元素個數:(以逗號隔開)\n");

scanf("%d,%d,%d", &(*m).mu, &(*m).nu, &(*m).tu);

(*m).data[0].i=0;

for(i = 1; i <= (*m).tu; i++)

{ do

{ printf("請按行序輸入第 %d 個非零元素的行( 1 ~ %d )," "列 ( 1 ~ %d ),元素值:(以逗號隔開)\n", i , (*m).mu, (*m).nu);

scanf("%d,%d,%d", &m, &n, &e);

k=0;

if(m < 1 || m > (*m).mu || n < 1 || n > (*m).nu)

k=1;

if(m < (*m).data[i-1].i || m == (*m).data[i-1].i && n

稀疏矩陣壓縮儲存(C語言實現)

在乙個矩陣中,如果非0元素遠遠少於0元素,那麼這個矩陣就是稀疏矩陣,在實際應用中,計算機會耗費大量的空間儲存這些無意義的0元素,如果能夠壓縮一下,將會減少計算機的開銷。本篇文章以五子棋的棋局儲存為背景,用c語言實現原始稀疏矩陣轉換為壓縮矩陣並且儲存為檔案,棋局覆盤則讀取檔案將壓縮矩陣轉換為原始稀疏矩...

經典資料結構之稀疏矩陣

資料的儲存形式,不外乎鍊錶和類陣列兩種。使用二維陣列儲存矩陣,如果該矩陣是稀疏的,那麼會浪費很多空間。例如乙個4 4的對角陣,很明顯,只有主對角線上才有元素。那麼使用二維陣列儲存需要16個單位的 儲存空間。然而通過定義乙個結構體 templatestruct sdatatype 然後將其存放於陣列,...

資料結構 稀疏矩陣

稀疏矩陣 矩陣中有效資料的個數遠遠小於無效資料的個數,則可以稱之為稀疏矩陣 如果還像以前那樣將每個稀疏矩陣的資料都儲存起來,則會造成記憶體的很大程度的浪費,所以應用特別的儲存方式。稀疏矩陣的壓縮儲存 使用 三元組儲存每乙個有效資料,三元組按原矩陣中的位置,以行優先順序先後順序依次存放。矩陣的轉置 將...