iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Software Development

闖進Python異世界 系列

Python是最適合初學者的程式語言,原因大致為簡潔、易懂、應用多,因此我覺得大家可以藉著這個程式語言入門「資料結構」這門相對困難的學問!在鐵人賽中,我將從最簡單的列表、字典說起,再進一步到鏈結串列與二元樹的實作。為求完整,我會在其中簡單介紹Python的物件導向特性,使資料結構更清楚明瞭。

鐵人鍊成 | 共 30 篇文章 | 11 人訂閱 訂閱系列文 RSS系列文 團隊Google開發者社群
DAY 21

[Day 21] 闖進Python異世界 - Queue with Linked List

還記得佇列的特色嗎?先進到佇列的資料會優先被取出!我們稱這個性質叫「先進先出」。 之前練習過用列表實作,那我們今天就來用鏈結串列實作吧! 第一步就是實作 cl...

2022-10-02 ‧ 由 chmh0624 分享
DAY 22

[Day 22] 闖進Python異世界 - Tree

今天的目標就是對樹狀結構有基本的認識! 樹(Tree) vs. 圖(Graph) 一個資料結構,如果他是沒有「循環」 (Cycle) 在內的,那他可以被拉成「樹...

2022-10-03 ‧ 由 chmh0624 分享
DAY 23

[Day 23] 闖進Python異世界 - Tree Class

一個資料結構的開始,我們都是先實作他的節點類別和資料結構類別。 就先從節點類別開始吧!初始化: 資料內容為參數 所有指標初始為空 class Node:...

2022-10-04 ‧ 由 chmh0624 分享
DAY 24

[Day 24] 闖進Python異世界 - Insertion in BST

二元搜尋樹的特色就是任意子樹的根節點資料大於左子樹的資料,且小於左子樹的資料。 因此我們在建構二元搜尋樹的時候也要依照他的邏輯! 為求方便,我們就使用 Hack...

2022-10-05 ‧ 由 chmh0624 分享
DAY 25

[Day 25] 闖進Python異世界 - Height of BST

在介紹樹的時候,我們有提到樹的相關性質,其中,樹的高度就是其中一個。 今天的目標就是來計算樹的高度。 其實只要幾行程式碼搭配遞迴思維,就可以完成!再來就是考慮...

2022-10-06 ‧ 由 chmh0624 分享
DAY 26

[Day 26] 闖進Python異世界 - Traversal of BST

Linked List 的 Traversal 其實很簡單,基本上不是由前向後走,就是由後向前走。 但是,樹要怎麼被遍歷呢?每一個節點都可以分岔出數個岔路,每一...

2022-10-07 ‧ 由 chmh0624 分享
DAY 27

[Day 27] 闖進Python異世界 - Level Order Traversal of BST

這種遍歷法就比較好去想像,我們是一層一層的去印出節點內容 舉例來說,有一棵樹長這樣: _1_ _3_ _7_ 9 8 4 2 那經過...

2022-10-08 ‧ 由 chmh0624 分享
DAY 28

[Day 28] 闖進Python異世界 - Valid BST

今天的目標是判斷一個二元搜尋樹是否合法?(Hackerrank 上的 Is this a Binary Search Tree ? ) 二元搜尋樹不同於二元樹的...

2022-10-09 ‧ 由 chmh0624 分享
DAY 29

[Day 29] 闖進Python異世界 - Lowest Common Ancestor

二元樹的相關題型中,有一個題目叫 Lowest Common Ancestor 我認為是相當經典的。 題目可以參考 Hackerrank 的 Lowest Co...

2022-10-10 ‧ 由 chmh0624 分享
DAY 30

[Day 30] 闖進Python異世界 - Ending

30 天的時間,我從 Python 的容器開始介紹,包含 list, dictionary, set 等,Python 的特色是它提供了我們許多相關的函式、內建...

2022-10-11 ‧ 由 chmh0624 分享