資料結構預習

2021-08-15 07:21:54 字數 1531 閱讀 3964

1. 順序儲存方式:

線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。

順序儲存結構封裝三個屬性:

(1) 儲存空間的起始位置。

(2) 線性表的最大儲存容量。

(3) 線性表的當前長度。

注意:陣列的長度與線性表的當前長度不一樣;陣列的長度是存放線性表的儲存空間的總長度,一般初始化後不變;而線性表的當前長度是線性表中元素的個數,是會變化的。

2. 插入操作:

(1)如果插入位置不合理,丟擲異常;

(2)如果線性表長度大於等於陣列長度,則丟擲異常或動態增加陣列容量;

(3)從最後乙個元素開始向前遍歷到第i個位置,分別將他們都向後移動乙個位置;  

(4)將要插入的元素填入位置i處;

(5)線性表長度+1。  

3. 刪除操作:

(1)如果刪除位置不合理,丟擲異常;

(2)取出刪除元素;

(3)從刪除元素位置開始遍歷到最後乙個元素位置,分別將它們都向前移動乙個位置;

(4)表長-1。

4. 線性表順序儲存結構的優缺點:

優點:無須為表示表中元素之間的邏輯關係而額外增加的儲存空間;可以快速的訪問表中任意位置的元素。

缺點:插入和刪除操作需要移動大量元素;當線性表長度變化較大時,難以確定儲存空間的容量;容易造成儲存空間的「碎片」。

5. 鏈式儲存結構

把儲存資料元素的域稱為資料域;把儲存直接後繼位置的域稱為指標域;指標域中儲存的資訊稱為指標或鏈。這兩部分資訊組成資料元素稱為儲存映象,稱為結點(node)。

n個結點鏈結成乙個鍊錶,即為線性表(

a1,a2

…,an

)的鏈式儲存結構。因為此鍊錶的每個結點中只包含乙個指標域,所以叫做單鏈表。

我們把鍊錶中第乙個結點的儲存位置叫做頭指標,最後乙個結點指標為空(null)。

6. 資料長度與線性表長度區別

陣列長度是存放線性表的儲存空間的長度,儲存分配後這個量一般是不變的。線性表的長度是線性表中資料元素的個數,隨著線性表插入和刪除操作的進入。在任意時刻,線性表的長度應該小於等於陣列長度。

7. 位址計算

用陣列儲存順序表意味著要分配固定長度的陣列空間,由於線性表中可以進行插入和刪除操作,因此分配的陣列空間要大於等於當前線性表的長度。

儲存器中的每個儲存單元都有自己的編號,這個編號稱為位址。

8. 迴圈鍊錶

迴圈鍊錶是單鏈表的變形。迴圈鍊錶最後乙個結點的 link 指標不 為

null

,而是指向了表的前端。為簡化操作,在迴圈鍊錶中往往加入表頭結點。

9. 儲存分配的方式

順序表的儲存空間是靜態分配的;鍊錶的儲存空間是動態分配的。

儲存密度 = 結點資料本身所佔的儲存量

/結點結構所佔的儲存總量。順序表的儲存密度

= 1;鍊錶的儲存密度

< 1

10. 後插法建立單鏈表

每次將新結點加在鍊錶的表尾;設定乙個尾指標 r,總是指向表中最後乙個結點,新結點插在它的後面;尾指標

r 初始時置為指向表頭結點位址

預習資料結構3 4,3 5

一.線性表是什麼?是乙個序列,具有順序,數量有限。二,順序儲存相關 指的是用一段連續的儲存單元,儲存一段依次儲存資料表的裡面的元素 儲存方式 用一維陣列儲存,記憶體型別的相同的資料放在一起,第乙個元素標號為0。線性表的長度不能超過一維陣列的容量。三,陣列長度與線性表的區別 陣列長度是儲存空間的長度是...

資料結構預習筆記(棧和佇列)

1.棧的定義 棧是限制僅在表的一端進行插入和刪除運算的線性表又稱為 後進先出表 lifo表 插入 刪除端稱為棧頂,另一端稱棧底 表中無元素稱空棧。2 棧的邏輯結構和儲存表示 棧的邏輯結構和線性表相同。棧的抽象資料型別有兩種典型的儲存表示 基於陣列的儲存表示和基於鍊錶的儲存表示。1 基於陣列的儲存表示...

資料結構佇列預習中需要注意的地方

1.佇列的定義 佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。2.佇列的抽象資料型別 關於佇列的操作有 1 initqueue q 初始化操作,建立乙個共佇列q 2 queueempty q 判斷佇列是否為...