C 陣列與矩陣

2021-10-01 02:34:59 字數 1290 閱讀 9474

近兩天看《資料結構》,總結一下陣列與矩陣這部分的內容

一、陣列

乙個陣列的每乙個例項都是形如(索引,值)的數對集合,其中任意兩個數對的索引都不相同。有關陣列的操作如下:

簡而言之,就是索引和值構成的數對的集合就是陣列。

二、矩陣

乙個m*n的矩陣是乙個m行、n列的表,m和n是矩陣的維數。矩陣在程式中一般是用一維陣列就行對映,主要有行主對映(按行的順序對元素一一對映)和列主對映(按列的順序對元素一一對映)。博主使用的是行主對映,對映關係為:

map(i,j) = i * columns + j

其中columns表示陣列的列數。

2.1 普通矩陣

對於普通矩陣採用行主對映方式,過載操作符()、=、+、-、<<,定義轉置運算等操作

templateclass matrix

int rows() const ; // 返回行數的函式

int columns() const // 返回列數的函式

t& operator() (int i, int j) const;

matrix& operator = (const matrix&);

matrixoperator +() const; // 單目運算子+

matrixoperator +(const matrix&) const;

matrixoperator -() const; // 單目運算子-

matrixoperator -(const matrix&) const;

matrix& operator +=(const t&);

matrixoperator *(const matrix&) const;

// 轉置運算

matrixtrans();

private:

int therows; // 矩陣的行數

int thecolumns; // 矩陣的列數

t* element; // 陣列element

};

具體函式實現見檔案arrayandmatrix.h

2.2 特殊矩陣

對角矩陣(diagonalmatrix.h):只有對角元素非0,因此採用對角線對映,就是把所有對角線的元素從上到下一一對映到一維陣列中;

三對角矩陣():只有對角線和對角線上下兩條相鄰的對角線,一共三條對角線上的元素是非0的,因此從下往上採用對角線對映即可;

下三角矩陣()

陣列與矩陣 轉圈列印矩陣(C 版)

題目 轉圈列印矩陣 要求 給定乙個整型矩陣matrix,請按照轉圈的方式列印它。要求額外空間複雜度為o 1 例如 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 列印結果為 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10 分析 逐邊列印外邊...

陣列與矩陣

toc 陣列是我們比較常接觸的一種資料結構了,就我們所了解的,陣列從一維到多維不等,由陣列演變出來的另一概念,被稱之為矩陣,但是其實質還是一種有序的序列。接下來給出一維陣列的實現。class array int arraysize int operator int i const 過載下標符 arr...

陣列與矩陣

建立陣列 建立簡單的陣列 x a b c d e f 建立包含指定元素的行向量。x first last 建立從first開始,加1計數,到last結束的行向量。x increment last 建立從first開始,加increment計數,到last結束的行向量。x linspace first...