以奶茶店作為故事背景,將資料結構融入日常場景,讓抽象的概念變得生活化,容易理解。
利用有趣的故事與程式範例來降低學習門檻。
我一手提著奶茶,一手抱著爆米花,跟著室友走進影廳。 人潮湧動,燈光昏暗,我低頭確認票根上的座位號碼—— 咦?居然只剩下「第 排 號」?該不會是印刷墨...
琢磨了一會兒「H排9號」後,我突然靈光一閃,脫口而出:「索引是不是座標的一種?」 小孩眼睛一亮,笑著點頭:「你很敏銳嘛,沒錯。兩者有很多相同之處。像是座標跟陣列...
「暖身差不多了,可以進行正式考驗了。」小孩在半空中一揮手,浮現出一段新的程式碼。 「我先示範一個簡單的例子,用 for 迴圈計算一維陣列,也就是單排座位賣出了幾...
電影散場後,我拖著疲憊的身子回到寢室,心不甘情不願地翻開課本,開始預習下一章——Linked List。書裡的解釋看得我滿頭問號:節點?指標?連起來?光看文字就...
雖然撲克牌接龍能幫助我想像 Linked List 的連接關係,但卻不能完全對應,尤其是「指標」這個概念,越看越覺得抽象。 正好學長來找室友打網球,我便厚著臉皮...
「雖然說是各有優缺,但實際上,在程式設計裡 ArrayList 幾乎是預設選擇。」學長聳聳肩,語氣很肯定,「因為效能、快取友善度、記憶體效率都更好。」 我皺著眉...
「那要怎麼實作 LinkedList 呢?」我忍不住焦急的問。說不定下一個挑戰就是這題,先來偷師一下。 學長笑了笑,搖搖頭說:「不用那麼緊張啊。其實在實務開發裡...
送走學長之後,我繼續窩在房間裡翻課本。下一章寫著「Stack 與 Queue」。 「終於講到 Queue 了!但是 Stack 要跟它一起上嗎?」我猜想這兩個資...
「原來如此,我懂了為什麼寢室不能算作 Stack。」我恍然大悟地說,「如果我們進來寢室後馬上又原路倒車出去,才符合 Stack 的進出方式。可平常進來之後大家就...
「肉會往下掉,那是因為地心引力吧?可是在程式裡的資料結構,為什麼也要這樣設計?」我還是不死心,想把電腦和生活切得乾乾淨淨。 孩子忍不住撲哧笑出聲:「程式是人寫的...