熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

多維數組

2013-11-15 14:56:57  來源: 數據結構 

  多維數組和廣義表是一種復雜的非線性結構它們的邏輯特征是一個數據元素可能有多個直接前驅和多個直接後繼

多維數組

數組(向量)——常用數據類型
  一維數組(向量)是存儲於計算機的連續存儲空間中的多個具有統一類型的數據元素
  同一數組的不同元素通過不同的下標標識
       (aaan)

二維數組
  二維數組Amn可視為由m個行向量組成的向量或由n個列向量組成的向量


  二維數組中的每個元素aij既屬於第i行的行向量又屬於第j列的列向量

多維數組
  三維數組Amnp可視為以二維數組為數據元素的向量四維數組可視為以三維數組為數據元素的向量……
  三維數組中的每個元素aijk都屬於三個向量四維數組中的每個元素都屬於四個向量……

數組的順序存儲方式
  由於計算機內存是一維的多維數組的元素應排成線性序列後存人存儲器
  數組一般不做插入和刪除操作即結構中元素個數和元素間關系不變化一般采用順序存儲方法表示數組
)行優先順序
   將數組元素按行向量排列第i+個行向量緊接在第i個行向量後面
  【例】二維數組Amn的按行優先存儲的線性序列為
    aaanaaan……amamamn

 注意
     ①PASCAL和C語言中數組按行優先順序存儲
     ②行優先順序推廣到多維數組可規定為先排最右的下標

)列優先順序
   將數組元素按列向量排列第i+個列向量緊接在第i個列向量後面
  【例】二維數組Amn的按列優先存儲的線性序列為
    aaamaaam……ananamn

 注意
     ①FORTRAN語言中數組按列優先順序存儲
     ②列優先順序推廣到多維數組可規定為先排最左的下標

數組元素的地址計算公式
)按行優先順序存儲的二維數組Amn地址計算公式
        LOC(aij)=LOC(a)+[(i)×n+j]×d
  其中
  ①LOC(a)是開始結點的存放地址(即基地址)
  ②d為每個元素所占的存儲單元數
  ③由地址計算公式可得數組中任一元素可通過地址公式在相同時間內存取即順序存儲的數組是隨機存取結構

)按列優先順序存儲的二維數組Amn地址計算公式
          LOC(aij)=LOC(a)+[(j)×m+i]×d

)按行優先順序存儲的三維數組Amnp地址計算公式
      LOC(aijk)=LOC(a)+[(i)×n×p+(j)×p+k]×d

)下界不為的二維數組的地址計算公式
 ①二維數組A[cdcd]的地址計算公式
      LOC(aij)=LOC(acc)+[(ic)×(dc+)+jc]×d
 ②下界為的二維數組的地址計算公式(C語言中使用)

 LOC(aij)=LOC(a)+[i×(d+)+j]×d
 注意
  以下討論的數組存儲結構都以C語言下標表示


 


From:http://tw.wingwit.com/Article/program/sjjg/201311/22594.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.