以奶茶店作為故事背景,將資料結構融入日常場景,讓抽象的概念變得生活化,容易理解。
利用有趣的故事與程式範例來降低學習門檻。
那麼換你了,給 Kotlin 的 ArrayDeque 增加 Queue 風格的操作吧。就用我剛剛寫的 Stack 風格改一改,很簡單的。」孩子眨眨眼。 我回想...
這次的考驗意外地輕鬆。 我一邊啜飲一口珍珠奶茶,一邊想著:資料結構其實也沒那麼生澀難懂嘛。 規則少少的,只要抓住核心,其他部分反而挺隨性的。既然如此,我就用自己...
「拜託,你那樣講他還是聽不懂啦。」剛剛一直安靜坐在學長旁邊的學姊忽然開口。 我嚇了一跳——咦?難道我神遊被她看穿了? 「先搞清楚 Tree 的作用比較重要吧?」...
「打鐵趁熱,我們馬上來做一個『二元搜尋樹』吧!」 學姊笑嘻嘻地從書包裡掏出了一副撲克牌,還故意像魔術師一樣炫技,來了一段交疊洗牌。 學長身體往後縮了縮。 「欸,...
我左看看右看看。 「學姊,我學會了怎麼排出二元搜尋樹的方法,可是⋯⋯你還沒教我怎麼搜尋啊?」 「啊呀,玩得太開心,差點忘記重點了。」學姊吐了吐舌頭,露出有點調皮...
「難怪學長剛剛會說 Tree 是『層級關係』,原來是因為這個特性啊。」我點點頭,忽然又冒出一個疑問。「那除了 Root 之外,其他節點都沒有特別的名字嗎?」 「...
「原來 Tree 的應用範圍比我想像的還要廣啊!」我忍不住感嘆。 「當然囉。」後面有個聲音回應我:「那你知道 BFS 和 DFS,分別對應 Queue 和 St...
「那 insert 和 insertRec 的差異呢?」 「insertRec 是 insertRecursive 的縮寫,意思是『用遞迴來插入』。」 「遞迴?...
「遞迴是不是其實也用到了 Stack 啊?」我好奇地問,因為剛剛聽起來遞迴是找到最簡單的答案之後,倒退回來做困難的。 「沒錯,不只遞迴,所有函式呼叫都會用到 S...
「那我們回過頭來,把 insertRec 補完吧。」 「等我一下,我想一下邏輯……」 記得是從上而下、左而右比較大小;如果有位置就直接停下來「卡位」。 不知不覺...