野生前端的資料結構基礎練習(4)——字典

大史不說話發表於2018-10-30

野生前端的資料結構基礎練習(4)——字典

網上的相關教程非常多,基礎知識自行搜尋即可。

習題主要選自Orelly出版的《資料結構與演算法javascript描述》一書。

參考程式碼可見:https://github.com/dashnowords/blogs/tree/master/Structure/Dictionary

字典的基本知識

鍵值對形式儲存資料的資料結構,在Javascript中更多地是直接使用物件,一般只在有排序需求的場景下會用到本篇中構造的Dictionary類,因為物件屬性是無序的。

字典的應用

字典在Javascript中是非常常用的技術之一,一般會和設計模式中的策略模式一起被提及。策略模式指的是定義一系列的演算法,把它們一個個封裝起來。將不變的部分和變化的部分隔開是每個設計模式的主題,策略模式也不例外,策略模式的目的就是將演算法的使用與演算法的實現分離開來。例如下面一段計算薪水和獎金的示例:

var obj = {
        "A": function(salary) {
            return salary * 4;
        },
        "B" : function(salary) {
            return salary * 3;
        },
        "C" : function(salary) {
            return salary * 2;
        } 
};
var calculateBouns =function(level,salary) {
    return obj[level](salary);
};
console.log(calculateBouns(`A`,10000)); // 40000

基本練習

構造一個Dictionary類。實現下列基本方法

  • add(key, value)——新增一條記錄
  • find(key)——查詢指定鍵對應的值
  • remove(key)——移除指定鍵值對
  • showAll( )——顯示所有鍵值對
  • clear( )——清空資料

課後習題(書中第七節習題)

  1. 寫一個程式,該程式從文字讀入名字和電話號碼,然後將其存入一個字典,程式包含如下功能:顯示單個電話號碼,顯示所有電話號碼,增加新的電話號,刪除電話,清空所有電話。
  2. 使用Dictionary類寫一個程式,用來統計一段文字中各個單詞出現的次數。例如,”the brown for jumped over the blue fox”,對應的輸出為:
the:2
brown:1
fox:2
jumped:1
over:1
blue:1
  1. 修改練習2,使單詞按字母順序顯示。

相關文章