iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0

我一手提著奶茶,一手抱著爆米花,跟著室友走進影廳。

人潮湧動,燈光昏暗,我低頭確認票根上的座位號碼——

咦?居然只剩下「第 排 號」?該不會是印刷墨水沒了吧?

我慌了,把票根舉到眼前反覆檢查。電影場次、時間、片名通通印得清清楚楚,唯獨座位號碼是空白的。

「算了,反正買的是連號座位,等等就坐在室友隔壁吧。」我心想。

結果一抬頭,剛剛還在旁邊的室友不知道到哪去了。

「糟了糟了,這下要怎麼找位置?」我急得差點把奶茶打翻。

就在我四處張望時,一個熟悉的稚嫩聲音悠悠響起——
「呵,又見面啦。」

我猛地回頭,只見那個小孩正悠哉地坐在最後一排,雙腿晃啊晃。

瞥了一眼手機,螢幕上的時間果然又停止了。

「這次又是什麼資料結構不見了?」我腦中閃過票根上空白的座位號碼。

「是陣列,也就是 Array 唷。」小孩神秘地笑。

「座位又不是一排的,怎麼會是陣列?」我忍不住質疑。

「哎呀,看來你只知道一維陣列,還不知道二維陣列呢。」

「一維、二維?」我皺眉。

「維就是維度。」小孩伸出手指,在空中畫出一條水平線。
「像這樣一條線,就是一維。」他說著,手指突然垂直落下,劃出一個十字。
「而二維就是行和列,像表格一樣。所以這種座位排列,正好就是二維陣列的例子。」

「喔⋯⋯這樣想確實合理。」我點點頭,「那這次的考驗是什麼?」

「你先說說你知道的陣列特性?」小孩歪著腦袋。

我回想起前幾天和室友的對話。
「固定大小、找東西快⋯⋯大概是這樣吧?」

「差不多啦,不過更精準的說法是——記憶體連續儲存、固定大小、同型態元素,還能用索引快速存取。」小孩一口氣背出來。

「為什麼要強調記憶體連續儲存?同型態、索引又是什麼意思?」我追問。

小孩笑了,指著座位說:「你看,這些椅子相鄰的,號碼也是相鄰的,對吧?要是亂七八糟,比如一號旁邊是七號,再過去變三號,你還能輕鬆找到自己的位置嗎?」

「呃⋯⋯那樣子確實很難找。」我想像了一下那畫面,忍不住打了個冷顫。

「同型態元素也是一樣。如果座位號碼和其他東西混在一起,比如連爆米花桶或飲料杯也共用號碼系統,那還能清楚嗎?不僅複雜,還很難估算距離。」

「最後嘛,索引就是你熟悉的『H排9號』。」

我愣了愣,突然意識到——這些特性其實早就存在於生活裡,只是我從來沒注意過。就像之前的排隊一樣,看似理所當然的細節,對電腦卻必須化成一條條嚴格的規則。
或許,資料結構這門課,不過是把人類的常識,轉換成電腦能理解的語言罷了。


上一篇
重新開機,治百病
下一篇
為什麼從 0 開始?
系列文
奶茶裡藏的資料結構(Kotlin範例)15
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言