矩陣的抽象資料型別定義 mooc筆記

2021-10-04 13:46:33 字數 1832 閱讀 8521

用二位陣列存放矩陣,c語言實現矩陣的加法和乘法

**如下:

#include

#include

#define maxr 100

//矩陣最大行數

#define maxc 100

//矩陣最大列數

typedef

int elementtype;

typedef

struct matrix* matrix;

struct matrix

;matrix create

(int m,

int n)

;//返回乙個m*n的矩陣

intgetmaxrow

(matrix a)

;//返回矩陣a的總行數

intgetmaxcol

(matrix a)

;//返回矩陣a的總列數

elementtype getentry

(matrix a,

int i,

int j)

;//返回矩陣a的第i行、第j列的元素

matrix add

(matrix a,matrix b)

;//如果a和b的行、列數一致,則返回矩陣c=a+b,否則返回錯誤標誌

matrix multiply

(matrix a,matrix b)

;//返回矩陣c=ab

void

print_matrix

(matrix a)

;//列印矩陣

intmain

(void

)matrix create

(int m,

int n)

intgetmaxrow

(matrix a)

intgetmaxcol

(matrix a)

elementtype getentry

(matrix a,

int i,

int j)

matrix add

(matrix a,matrix b)

matrix c =

(matrix)

malloc

(sizeof

(struct matrix));

c->row = a->row;

c->col = a->col;

for(

int i =

0; i < c->col; i++

)for

(int j =

0; j < c->row; j++

) c->data[i]

[j]= a->data[i]

[j]+ b->data[i]

[j];

return c;

}matrix multiply

(matrix a,matrix b)

matrix c =

(matrix)

malloc

(sizeof

(struct matrix));

c->row = a->row;

c->col = b->col;

//模擬矩陣的乘法

for(

int i =

0; i < c->row; i++

) c->data[j]

[i]= temp;}}

return c;

}void

print_matrix

(matrix a)

}}

有什麼沒有考慮到的地方歡迎各位指出=-=

定義抽象資料型別

更多類的基本概念 對於抽象資料型別來說,我們通過它的介面來使用它的物件而不知道這個類有哪些資料成員。與之相反,若乙個類允許他的使用者直接訪問他的資料成員,並且要求由使用者來編寫操作,則這個類不是乙個抽象資料型別。設計類 類的介面包括使用者所能執行的操作 類的實現則包括類的資料成員 負責介面實現的函式...

抽象資料型別

本篇文章簡單的講解下表 棧 佇列。首先先了解一下什麼是抽象資料型別。它是這麼定義的 抽象資料型別 abstract data type,即adt 是帶有一組操作的一些物件的集合。那麼adt怎麼理解呢?首先你只需要記住表 集合 圖以及與他們各自的操作一起形成的物件都可以被看做抽象資料型別.這就跟整型 ...

抽象資料型別 表

資料結構與演算法分析.c 實現 總結 抽象資料型別 abstract data type,首先顧名思義,她是一種資料型別,就像整數 字元,類似於加減乘除,他有自己的操作,例如 並和查詢 並沒有什麼法則規定一定要有什麼操作,具體的看設計要求 每種資料型別的實現方式也是不同的,主要有 陣列實現和鍊錶實現...