@chow
May 27, 2023 · 5 min read · Introduction 所謂的多個堆疊,是指在一個陣列裡實現K個堆疊,如下方圖片裡,3個堆疊要平分陣列裡的位址 要實現多個堆疊有兩個方法可以實現 Simple method:將陣列劃分為 n/k Efficient method:節省空間 Implementation Simple method 結構定義 push() 加入時要先判斷該堆疊是否已經到下一個堆疊的bottom了 pop() 刪除時只要判斷同一個堆疊是否相同就好,然後再把該堆疊的top遞減 完整的程式碼 #incl...
Join discussion
May 14, 2023 · 5 min read · Introduction 雙向鏈結串列與單向鏈結串列相比,雙向鏈結串列多了一個指向前一個節點的指標 並且最後一個節點會重新指回head節點,head節點也會指向最後一個節點 Methods 以下為雙向鏈結串列常見的操作 Insertion:加入節點 Deletion:刪除節點 Search:查詢該節點是否存在於雙向鏈結串列 Reverse:反轉雙向鏈結串列 Time Complexity OperationTime ComplexityWorst Time ComplexityS...
Join discussion
May 12, 2023 · 9 min read · Introduction 最基本的資料結構就是由線性排列儲存的,我們可以分成利用陣列或是鏈結串列,這2者的差別在於陣列在記憶體中是連續排列的,而鏈結串列在記憶體中不是連續排列的。 鏈結串列指的是將多個不連續的資料節點,透過指標方式串連起來的資料結構,鏈結串列由多個節點組成,每個節點至少包含資料以及儲存下一個位址的指標 鏈結串列因為可以動態的增加和刪除節點,因此在頻繁需要加入和刪除的時候會很有用,因為當陣列要加入或刪除時,必須要移動節點才不會浪費空間 Dynamic Array #includ...
Join discussion
May 10, 2023 · 4 min read · Introduction 佇列是一種先進先出的一種資料結構,類似於堆疊,但差別在於佇列刪除的元素是最早加入的元素 但是會發生陣列的前面還有空間,但因為rear已經大於等於n - 1,所以會產生佇列已滿的訊息,因此佇列常常以環狀佇列的方式來表示 Methods Enqueue:加入資料到佇列裡 Dequeue:刪除front變數所指的值 isEmpty:檢查佇列是否是空的 Peek:取得front變數所指的值 Time Complexity OperationTime Comple...
Join discussion