寫過程式的人都知道,每個程式執行的效率以及使用的記憶體空間都大不相同,即便他們的目的相同,為什麼呢?原因就在於如何存取資料,以及怎麼取得資料!想像你是一個儲貨中心的老闆,你要怎麼去加速員工取貨與存貨的速度?或許你會設計不同的空間,或許你會將貨物分門別類!這些都是方法。在這場鐵人賽中,我會分享如何用C++管理程式中的資料,換句話說,用C++建造出不同的儲物空間,而在程式設計中,這門學問就叫做「資料結構」。
有了 linkedList::pushFront() 我們也需要一個 linkedList::pushBack()。從這個類別方法中,我們可以很明顯的發覺「單向...
今天我們要完成最後一個基本增減節點的類別方法:linkedList::popBack() 與上一篇相同的是我們可以來看看單雙向鏈結串列的差異。 定義類別 cl...
介紹完了四種基本增刪節點的類別方法,現在我們要將他們加以應用。今天的目標是實作一個「堆疊 Stack」! 堆疊 Stack 堆疊是一個「後進先出」的資料結構。什...
上一篇,介紹了「堆疊」,這篇我們來介紹「佇列 Queue」! 他們的性質其實非常相似,我們來看看吧! 佇列 Queue 佇列是一個「先進先出」的資料結構。什麼...
如果鏈結串列只能從頭或尾新增節點是不是顯得有點無聊呢? 這篇我們就要來介紹如何從中間新增資料,使得所有資料遞增排序。 定義類別 class SLL { pri...
實作一下 linkedList::remove() 吧! 這個類別的功用是:給定一個目標值,從鏈結串列移除包含目標值的節點。 定義類別 class SLL {...
今天,我們來解決一個問題吧! 給定一個遞增的鏈結串列,回傳一個遞減的鏈結串列。 其實,這個問題有兩個解決方法! 將原本鏈結串列的數值儲存於陣列中,再將它們以遞...
樹(Tree) vs. 圖(Graph) 一個資料結構,如果他是沒有「循環」 (Cycle) 在內的,那他可以被拉成「樹」 如果存在「循環」在內,那他就叫「圖」...
上一篇我們介紹了「二元樹」,且我們提到「二元搜尋樹是二元樹的一種」,這篇我們要來定義何謂二元搜尋樹! 定義「二元搜尋樹」 如果根節點 root 存在左子節點...
建立一棵樹之前,我們需要先建立「樹節點」類別。 由於實作的樹為「二元搜尋樹」,所以我們稱樹節點類別為 BSTNode 定義 BSTNode 從之前的二元樹模型...