1 / 14

第 2 章 陣列結構

資料結構設計與 C++ 程式應用 Fundamentals of Data Structures and Their Applications Using C++. 第 2 章 陣列結構. 資料結構設計與 C++ 程式應用 版權所有 禁止重製. 陣列的宣告. 資料型態 陣列名稱 [ 陣列大小 ][ 陣列大小 ]… [ 陣列大小 ];

Download Presentation

第 2 章 陣列結構

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第2章 陣列結構 資料結構設計與C++程式應用 版權所有 禁止重製

  2. 陣列的宣告 • 資料型態 陣列名稱[陣列大小][陣列大小]… [陣列大小]; • 資料型態 陣列名稱[陣列大小][陣列大小]… [陣列大小] = {初值}; • int X[10] = {73, 65, 52, 24, 83, 17, 35, 96, 41, 9};

  3. 陣列的宣告 • int Y[2][3] = { {1,2,3}, // 設定第0列初值 {4,5,6}, // 設定第1列初值 };

  4. 陣列的表示法 • 一維陣列 • A[1],A[2],…,A[n] LOC(ai ) = A的起始位址+ ai的索引位移 = α+(i-1)S 。 • α為陣列A的起始位置,而S為陣列元素所佔之空間大小。 • ?? If start with A[0], A[1],A[2],…,A[n-1] then LOC(ai ) = α+(i-0)S = α+(i)S

  5. 陣列的表示法 (2006/9/29) • 二維陣列 • B[m][n] • 【以列為主 (Row Major) 】 LOC(bij) = α + (i-1)nS + (j-1)S。 • 【以行為主 (Column Major) 】 LOC(bij) = α + (j-1)mS + (i-1)S。 • α為陣列B的起始位置,而S為陣列元素所佔之空間大小。

  6. 陣列的表示法 • 三維陣列 • C[m][n][o] • 【以列為主 (Row Major) 】 LOC(cijk) = α + (i-1)noS + (j-1)oS + (k-1)S。 • 【以行為主 (Column Major) 】 LOC(cijk) = α + (k-1)mnS + (j-1)mS + (i-1)S。

  7. 陣列的表示法 • N維陣列 K[u1][u2]...[un] • 【以列為主 (Row Major) 】 LOC( ) = α + (i1-1)u2u3…un S + (i2-1)u3u4…un S + (i3-1)u4u5…un S + … + (in-1-1)un S + (in-1) S • 【以行為主 (Column Major) 】 LOC( ) = α + (in -1)un-1un-2…u1 S + (in-1-1)un-2un-3…u1 S + (in-2-1)un-3 un-4 …u1 S + … + (i2 -1)u1 S + (i1 -1)S

  8. 陣列的表示法 • 下三角矩陣 • 以列為主 (Row Major) LOC(Xij) = α + i (i-1)S + (j-1)S。

  9. 陣列的表示法 • 上三角矩陣 • 以列為主 (Row Major)

  10. 二維陣列的應用 • 矩陣乘積

  11. 二維陣列的應用 • 矩陣乘積

  12. 二維陣列的應用 • 矩陣轉置 • B[j][i]=A[i][j] • 矩陣A及其轉置矩陣B

  13. 二維陣列的應用 • 反射矩陣 • 矩陣A及其反射矩陣B

  14. 二維陣列的應用 • 稀疏矩陣(Sparse Matrix) • 原矩陣為 8*8,共有 9 個非 0 元素

More Related