Tip:
Highlight text to annotate it
X
製作 hash table,我們做的第一件事是
要了解如何建立一個空的 hash table
對於簡單的索引,這真的很容易
要製作空的索引,只要有一個空列表,不包含任何元素
所以我們可以將索引初始化為一個空列表
之前在列表中加入元素時,只要將他們加到空列表中
對於 hash table,卻無法這麼做
我們需要做一些更複雜的事,才能建立空的 hash table
因為我們需要從所有的'桶'開始
普通索引的初始值,只是一個空列表
而 hash table 的初始值,是空'桶'的集合
原因是,我們希望能立即進行查找 (lookup)
我們也希望能夠對 hash table 添加元素
如果只是從空列表開始,那麼第一次查找關鍵字時
比方說,關鍵字屬於 bucket 27
我們並沒有這個'桶',我們需要弄清楚如何建立這個'桶'
所以一開始將 hash table 設成'桶'列表,就合理多了
這些'桶'的初始值都是空的
它們已準備好,隨時可加入關鍵字
我們需要寫程式碼來建立空的 hash table
我想,大家都已掌握如何定義 make-hashtable
所以做個測驗
你的目標是定義程序 make-hashtable
輸入一個數字,hash table 裡的'桶'數
輸出一個空的 hash table,包含具有 nbuckets 個空'桶'