資料結構 多維陣列

2021-08-23 11:55:53 字數 2037 閱讀 7623

???? 關於多維資料的儲存有一些公式需要記憶,其實可以很容易推理出來,但是感覺有時候腦子不知道怎麼那麼笨,容易一下子就走神,記錄一下.

特殊矩陣

???  所謂特殊矩陣是指非零元素或零元素的分布有一定規律的矩陣。常見的有對稱矩陣、三角矩陣和對角矩陣等。

②元素aij的存放位置

??? aij元素前有i行(從第0行到第i-1行),一共有:

???????? 1+2+…+i=i?(i+1)/2個元素;

??? 在第i行上,aij之前恰有j個元素(即ai0,ail,…,ai,j-1),因此有:

?????????? sa[i?(i+1)/2+j]= aij?

③aij和sa[k]之間的對應關係:

??? 若i≥j,k=i?(i+1)/2+j?? 0≤k(3)對稱矩陣的位址計算公式

? loc(aij)=loc(sa[k])

????????? =loc(sa[0])+k?d=loc(sa[0])+[i?(i+1)/2+j]?d

??? 通過下標變換公式,能立即找到矩陣元素aij在其壓縮儲存表示sa中的對應位置k。因此是隨機訪問結構。

? 【例】a21和a12均儲存在sa[4]中,這是因為

?????????? k=i?(i+1)/2+j=2?(2+1)/2+1=4

2、三角矩陣??

(1)三角矩陣的劃分

???  以主對角線劃分,三角矩陣有上三角矩陣和下三角矩陣兩種。

①上三角矩陣

???  如下圖(a)所示,它的下三角(不包括主角線)中的元素均為常數c。

②下三角矩陣

???  與上三角矩陣相反,它的主對角線上方均為常數c,如下圖(b)所示。

? 注意:

??? 在多數情況下,三角矩陣的常數c為零。

(2)三角矩陣的壓縮儲存

??? 三角矩陣中的重複元素c可共享乙個儲存空間,其餘的元素正好有n?(n+1)/2個,因此,三角矩陣可壓縮儲存到向量sa[0..n(n+1)/2]中,其中c存放在向量的最後乙個分量中。

??

① 上三角矩陣中aij和sa[k]之間的對應關係

???  上三角矩陣中,主對角線之上的第p行(0≤pij時:

???? aij元素前有i行(從第0行到第i-1行),一共有:

??????? (n-0)+(n-1)+(n-2)+…+(n-i)=i?(2n-i+1)/2個元素;

???  在第i行上,aij之前恰有j-i個元素(即aij,ai,j+l,…,ai,j-1),因此有:

????????? sa[i?(2n-i+1)/2+j-i]= aij?

所以:? ? ?┌i?(2n-i+1)/2+j-i 當i≤j

?? k=│

????? └n?(n+1)/2 當i>j

②下三角矩陣中aij和sa[k]之間的對應關係

??  ? ┌i?(i+1)/2+j 當i≥j

?? k=│

???   └n?(n+1)/2 當i<j

? 注意:

???  三角矩陣的壓縮儲存結構是隨機訪問結構。

3.對角矩陣

???所有的非零元素集中在以主對角線為中心的帶狀區域中,即除了主對角線和主對角線相鄰兩側的若干條對角線上的元素之外,其餘元素皆為零的矩陣為對角矩陣。

【例】下圖給出了乙個三對角矩陣。

???????????

???? 其中:

??? 非零元素僅出現在主對角上(aii,0≤i≤n-1),緊鄰主對角線上面的那條對角線上(ai

,i+1 ,0≤i≤n-2)和緊鄰主對角線下面的那條對角線上(a i+1

,i,0≤i≤n-2)。當|i-j|>1時,元素aij=0。

???  由此可知,乙個k對角線矩陣(k為奇數)a是滿足下述條件的矩陣:

??????????? 若|i-j|>(k-1)/2,則元素aij=0。

???  對角矩陣可按行優先順序或對角線的順序,將其壓縮儲存到乙個向量中,並且也能找到每個非零元素和向量下標的對應關係。具體【參見練習】

資料結構 五) 多維陣列

一 總結 對這一部分還是很生疏,不太會做,而且openjudge上的題目進度緩慢,不開森。但是我還是會好好做題的,也得抽空複習一下,不然都忘光了。二 筆記 線性表 具有相同型別的資料元素的有限序列。多維 陣列 線性表中的資料元素可以是線性表,但所有元素的型別相同。廣義表 線性表中的資料元素可以是線性...

資料結構之多維陣列理解

1 最基本的理解是 陣列中的陣列 2 最形象的理解是 一維陣列就象一行字。二維陣列就象一頁字。三維陣列就象一本書中的字。四維陣列就象一套書中的字。五維陣列就象書櫃中多套書中的字。六維陣列就象圖書館多個書櫃多套書中的字。七維陣列是乙個城市的圖書館藏書中的字 八維陣列是乙個國家的圖書館藏書中的字 九維陣...

資料結構 字串和多維陣列

第 4 章 字串和多維陣列 本章的基本內容是 字串。在程式語言中大都有串變數的概念,而且實現了基本的串操作,本章重點討論串的儲存結構及模式匹配演算法。陣列。在程式語言中大都提供了陣列作為構造資料型別,本章重點討論陣列以及特殊矩陣的儲存與定址。4.1 字串 主要內容 4.11 字串的定義 4.12 字...