鏈結表結構,基本技術,基本操作,加入和刪除元素,操作的複雜性,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 一組...
第二章 資料結構與演算法基礎
資料 描述客觀事物的數值 字元已經能輸入機器且能被處理的各種符號集合。資料元素 資料的基本單位,是資料集合的個體。資料物件 性質相同的資料元素的集合,是資料的子集。資料結構 相互之間存在一種或多種特定關係的資料元素的集合。邏輯結構 資料結構的邏輯層面。按照元素之間的相互關係的特性,分為 集合 線性結...