Kkinikuinkiniku.hashnode.dev·Jun 12, 2023 · 5 min readBinary Tree樹狀結構的一些專有名詞 一般的樹狀結構擁有以下的特徵: 節點:代表某項資料 根結點:沒有父節點的節點,一顆樹也只能有一個根結點 父節點、子節點:若某個節點連接到下面一個節點,則該節點為父節點,而下面的節點稱為子節點 祖先節點、子孫節點:若某個節點有一條路徑可以通往另一個節點,那就代表該節點為祖先節點 兄弟節點:當它們都是同一個父節點的子節點時則該子節點們互為兄弟節點 樹葉節點:分支度為0的節點 分支度:一個節點有幾個子節點稱為分支度 高度:某節點到距離最遠的樹葉節點的最長路徑...00
Kkinikuinkiniku.hashnode.dev·May 27, 2023 · 5 min readMultiple StacksIntroduction 所謂的多個堆疊,是指在一個陣列裡實現K個堆疊,如下方圖片裡,3個堆疊要平分陣列裡的位址 要實現多個堆疊有兩個方法可以實現 Simple method:將陣列劃分為 n/k Efficient method:節省空間 Implementation Simple method 結構定義 push() 加入時要先判斷該堆疊是否已經到下一個堆疊的bottom了 pop() 刪除時只要判斷同一個堆疊是否相同就好,然後再把該堆疊的top遞減 完整的程式碼 #incl...00
Kkinikuinkiniku.hashnode.dev·May 14, 2023 · 5 min readDoubly Circular Linked ListIntroduction 雙向鏈結串列與單向鏈結串列相比,雙向鏈結串列多了一個指向前一個節點的指標 並且最後一個節點會重新指回head節點,head節點也會指向最後一個節點 Methods 以下為雙向鏈結串列常見的操作 Insertion:加入節點 Deletion:刪除節點 Search:查詢該節點是否存在於雙向鏈結串列 Reverse:反轉雙向鏈結串列 Time Complexity OperationTime ComplexityWorst Time ComplexityS...00
Kkinikuinkiniku.hashnode.dev·May 12, 2023 · 9 min readArray、Singly Linked ListIntroduction 最基本的資料結構就是由線性排列儲存的,我們可以分成利用陣列或是鏈結串列,這2者的差別在於陣列在記憶體中是連續排列的,而鏈結串列在記憶體中不是連續排列的。 鏈結串列指的是將多個不連續的資料節點,透過指標方式串連起來的資料結構,鏈結串列由多個節點組成,每個節點至少包含資料以及儲存下一個位址的指標 鏈結串列因為可以動態的增加和刪除節點,因此在頻繁需要加入和刪除的時候會很有用,因為當陣列要加入或刪除時,必須要移動節點才不會浪費空間 Dynamic Array #includ...00
Kkinikuinkiniku.hashnode.dev·May 10, 2023 · 4 min readData Structure: QueueIntroduction 佇列是一種先進先出的一種資料結構,類似於堆疊,但差別在於佇列刪除的元素是最早加入的元素 但是會發生陣列的前面還有空間,但因為rear已經大於等於n - 1,所以會產生佇列已滿的訊息,因此佇列常常以環狀佇列的方式來表示 Methods Enqueue:加入資料到佇列裡 Dequeue:刪除front變數所指的值 isEmpty:檢查佇列是否是空的 Peek:取得front變數所指的值 Time Complexity OperationTime Comple...00