稀疏矩陣a、b均採用三元組順序表表示,驗證實現矩陣a快速轉置演算法,並設計、驗證矩陣a、b相加得到矩陣c的演算法。
(1) 從鍵盤輸入矩陣的行數和列數,隨機生成稀疏矩陣。
(2) 設計演算法將隨機生成的稀疏矩陣轉換成三元組順序表形式儲存。
(3) 設計演算法將快速轉置得到的與相加得到的三元組順序表分別轉換成矩陣形式。
(4) 輸出隨機生成的稀疏矩陣a、b及其三元組順序表、快速轉置得到的與相加得到的三元組順序表及其矩陣形式。
#include
"stdio.h"
#include
"stdlib.h"
#include
"string.h"
#include
"math.h"
#include
"time.h"
#define ture 1
#define flase 0
#define error 0
#define ok 1
#define inflaseble -1
#define maxsize 2500
#define size 50
typedef
int elemtype;
typedef
int status;
typedef
struct
triple;
typedef
struct
tsmatrix;
status createtsmatrix
(tsmatrix *m,
int row,
int col)}}
m->tu=p-1;
//p從1始,剛好等於 非零元個數-1
return ok;
}status printtsmatrix
(tsmatrix m)
printf
("\n");
}return ok;
}status printmatrix
(tsmatrix m)
else
printf
("%4d",0
);printf
("\n");
}printf
("\n");
return ok;
}status judgetsmatrix
(tsmatrix m,
int row,
int col)
return0;
}status tsmatrixadd
(tsmatrix m,tsmatrix n,tsmatrix *q)
else
if(order1&&
(!order2)
)elseif(
(!order1)
&&order2)}}
q->mu=m.mu;
q->nu=m.nu;
q->tu=order-1;
printf
("矩陣 a 加矩陣 b 得到矩陣 c\n");
return ok;
}else
}/*status addsmatrix(tsmatrix m,tsmatrix n,tsmatrix *q)
c->data[++c->tu].e=b.data[btu++].e+a.data[atu++].e;
} } }
for(;atudata[++c->tu]=a.data[atu];}
for(;btudata[++c->tu]=b.data[btu];}
return ok;
}*/status fasttransmatrix
(tsmatrix m,tsmatrix *n)
}return ok;
}int
main()
printf
("\n");
}return0;
}
結構體陣列及其應用
定義結構體陣列 定義結構體陣列和定義結構體相似,在變數名表列宣告它是陣列即可。例如sturct student sturct student stu 3 或者直接定義乙個結構體陣列 sturct student stu 3 sturct stu 3 結構體陣列的初始化一般形式是在定義陣列後面加上 結...
C 動態陣列及其應用
很多情況下,在預編譯過程階段,陣列的長度無法預先知道,必須在程式執行時動態給出。但c 要求定義陣列時,必須明確給定陣列的大小,否則編譯無法通過。靜態陣列是在棧上建立,不需要自行釋放空間,效率高,但是棧空間有限。動態陣列new是在堆上建立,堆為自由儲存區 free store 需要自行釋放空間,效率低...
2015 7 14 樹狀陣列及其初步應用
樹狀陣列 binary indexed tree 是一種設計新穎的陣列結構,它能夠高效地獲取陣列中連續n個數的和。概括說,樹狀陣列通常用於解決以下問題 陣列中的元素可能不斷地被修改,怎樣才能快速地獲取連續幾個數的和?舉個簡單的例子 現在有乙個長度為n的陣列,陣列記憶體有資料,對於這些資料一般有兩類操...