資料結構與演算法python 第二章線性表(2)

2021-08-17 21:16:52 字數 1959 閱讀 1849

鏈結表結構,基本技術,基本操作,加入和刪除元素,操作的複雜性,python 實現,結點類,單鏈錶類,繼承/基類/派生類,帶尾結點引用的單鏈表

一、順序表的另一種組織形式——鏈結表

1.如果乙個表在使用中經常需要修改結構,用順序表實現就不很方便,操作代價可能很高,根源在於元素

儲存的集中方式和連續性

2.線性表實現的兩個基本需要:

(1)能夠找到表中的首元素(2)從表裡的任乙個元素出發,可以找到它之後的下乙個元素

3.基於鏈結結構可以實現線性表,用鏈結顯式地表示元素之間的順序關聯。

二、單鏈表

1.掌握乙個單鏈表,需:

(1)找到表的首元素(表裡儲存的資料)(2)還可以找到表中下一結點的位置

2.表頭變數:儲存著鍊錶第乙個結點的標識(鏈結)的變數

3.單鏈表結點的形式(鏈結域儲存下一結點的標誌)

4.乙個具體的表由一些具體的結點構成:

(1)每個結點都有自己的標識(鏈結)

(2)結點之間通過結點鏈結建立起順序聯絡

(3)給表的最後乙個結點(表尾結點)的連線設定乙個不會作為結點物件標識的值(python裡自然應該用到none),稱為空鍊錶。

5.實現演算法時,只需關心鍊錶的邏輯結構(鍊錶的操作只需根據鍊錶的邏輯結構考慮和實現)

6.單鏈表操作:基本操作

(1)建立空鍊錶:只需將表頭變數設定為空鏈結,在python裡將其設定為none

(2)刪除鍊錶:丟棄表的所有結點,與具體環境有關:在python中將表指標設為nnoe

(3)判斷表是否為空:將表頭變數的值與空鏈結比較,在python裡檢查其值是否為nnoe

(4)判斷表是否滿:鏈結表不會滿,除非儲存空間用完

7.單鏈表操作:加入元素

(1)無需移動已有資料,只需為新資料安排乙個新結點,把新結點連線在表裡所需的位置,通過修改鏈結,改變表的結構。

(2)首端加入:

(3)尾端加入:

(3)定位加入:

8.單鏈表操作:刪除元素

(1)首端刪除:直接修改表頭指標,使之引用當時表頭結點的下乙個結點

(2)尾端刪除:找到倒數第二個結點,將其鏈結域設定為空鏈結

(3)定位刪除:找到要刪除元素所在結點的前一結點,修改它的鏈結域將要求刪除的結點從表中去掉

9.單鏈表操作:掃瞄和遍歷

(1)許多操作中需要掃瞄表裡乙個個結點,可能檢查其中的元素,這種操作的過程稱為遍歷,順序檢查乙個資料結構中的所有元素。

10.單鏈表操作:複雜性

11.單鏈表的變形:帶尾結點引用

注意:新設計的鍊錶與前面單鏈表結構相似,結構變化應該只影響到表的變動操作,費變動操作不需要修改。

資料結構與演算法Python版 第二週測驗

1單選 2分 判斷下列 段的大o級別 test 0for i in range n for j in range n test test i ja.o n 2 b.o n 3 c.o n d.o n log n 正確答案 a 2單選 2分 判斷下列 段的大o級別 test 0for i in ran...

資料結構與演算法 緒論 (二)python

1.python程式的計算複雜性 2.問題和複雜性 3.計算和資料表示 用計算機解決問題,可以認為是實現某種資訊表示形式的轉換.1 資料data 電腦程式能夠處理的符號形式的綜合,資料是編碼的資訊。2 資料元素data element 資料的基本單位 3 資料結構data structures 一組...

第二章 資料結構與演算法基礎

資料 描述客觀事物的數值 字元已經能輸入機器且能被處理的各種符號集合。資料元素 資料的基本單位,是資料集合的個體。資料物件 性質相同的資料元素的集合,是資料的子集。資料結構 相互之間存在一種或多種特定關係的資料元素的集合。邏輯結構 資料結構的邏輯層面。按照元素之間的相互關係的特性,分為 集合 線性結...