一、總結:
對這一部分還是很生疏,不太會做,而且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 以列序為主序 高下標優先 最左邊的下標先變化,從左到右。主要是針對特...