python程式設計篇之資料結構與演算法 十三

2021-08-29 04:45:12 字數 803 閱讀 9128

樹(英語:tree)是一種抽象資料型別(adt)或是實作這種抽象資料型別的資料結構,用來模擬具有樹狀結構性質的資料集合。它是由n(n>=1)個有限節點組成乙個具有層次關係的集合。把它叫做「樹」是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點:

比如說,

有序樹中的分類

二叉樹的分類順序儲存:將資料結構儲存在固定的陣列中,然在遍歷速度上有一定的優勢,但因所佔空間比較大,是非主流二叉樹。二叉樹通常以鏈式儲存。

鏈式儲存:

由於對節點的個數無法掌握,常見樹的儲存表示都轉換成二叉樹進行處理,子節點個數最多為2

1.xml,html等,那麼編寫這些東西的解析器的時候,不可避免用到樹 2.路由協議就是使用了樹的演算法 3.mysql資料庫索引 4.檔案系統的目錄結構 5.所以很多經典的ai演算法其實都是樹搜尋,此外機器學習中的decision tree也是樹結構

python程式設計篇之資料結構與演算法 五

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為隊頭。佇列不允許在中間部位進行操作!假設佇列是q a1,a2,an 那麼a1就是隊頭元素,而an是隊...

python程式設計篇之資料結構與演算法 七

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...

python程式設計篇之資料結構與演算法 十一

歸併排序是採用分治法的乙個非常典型的應用。歸併排序的思想就是先遞迴分解陣列,再合併陣列。將陣列分解最小之後,然後合併兩個有序陣列,基本思路是比較兩個陣列的最前面的數,誰小就先取誰,取了後相應的指標就往後移一位。然後再比較,直至乙個陣列為空,最後把另乙個陣列的剩餘部分複製過來即可。二分分解 num l...