資料結構 五) 多維陣列

2021-09-28 20:35:11 字數 1578 閱讀 9796

一、總結:

對這一部分還是很生疏,不太會做,而且openjudge上的題目進度緩慢,不開森。。。

但是我還是會好好做題的,也得抽空複習一下,不然都忘光了。

二、筆記:

線性表——具有相同型別的資料元素的有限序列。

(多維)陣列——線性表中的資料元素可以是線性表,但所有元素的型別相同。

廣義表——線性表中的資料元素可以是線性表,且元素的型別可以不相同。

⑴ 訪問:給定一組下標,讀出對應的陣列元素;

⑵ 修改:給定一組下標,儲存或修改與其相對應的陣列元素。

訪問和修改操作本質上只對應一種操作——定址

陣列沒有插入和刪除操作,所以,不用預留空間,適合採用順序儲存。

按行優先儲存的定址

列優先儲存的定址

設陣列開始存放位置 loc( 0, 0 ) = a,

每個元素占用 l 個儲存單元

loc ( i, j ) = a + ( j *n +i ) * l

三維陣列

n維陣列

特殊矩陣和稀疏矩陣

特殊矩陣:矩陣中很多值相同的元素並且它們的分布有一定的規律。

稀疏矩陣:矩陣中有很多零元素。

壓縮儲存的基本思想是:

⑴ 為多個值相同的元素只分配乙個儲存空間;

⑵ 對零元素不分配儲存空間。

對稱矩陣的壓縮儲存

aij在一維陣列中的序號

=i×(i-1)/2+ j

∵一維陣列下標從0開始

∴aij在一維陣列中的下標

k=i×(i-1)/2+ j-1

對於下三角中的元素aij(i≥j), 在一維陣列中的下標k與i、j的關係為:

k=i×(i-1)/2+j-1 。

上三角中的元素aij(i<j),因為aij=aji,則訪問和它對應的元素aji即可,即:

k=j×(j-1)/2+i -1。

稀疏矩陣的壓縮儲存

template

struct

element

;儲存結構定義:

`

``

const int maxterm=100;

template struct sparsematrix

;

廣義表的儲存結構——

頭尾表示法
enum elemtag ;

template

struct glnode ptr;

};

頭尾表示法中:指標不再表示鍊錶中節點之間的關係。

![在這裡插入描述](

資料結構 多維陣列

關於多維資料的儲存有一些公式需要記憶,其實可以很容易推理出來,但是感覺有時候腦子不知道怎麼那麼笨,容易一下子就走神,記錄一下.特殊矩陣 所謂特殊矩陣是指非零元素或零元素的分布有一定規律的矩陣。常見的有對稱矩陣 三角矩陣和對角矩陣等。元素aij的存放位置 aij元素前有i行 從第0行到第i 1行 一共...

資料結構之多維陣列理解

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

學習資料結構(五) 陣列

陣列是下標與值成對的集合。在c 中有靜態與動態之分 1 靜態陣列 定義時顯式宣告資料型別與空間記憶體大小。2 動態陣列 程式執行時才分配空間的。陣列有兩種順序映像方式 1 以行序為主序 低下標優先 最右邊的下標先變化,從右到左 2 以列序為主序 高下標優先 最左邊的下標先變化,從左到右。主要是針對特...