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

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

網上的相關教程很是多,基礎知識自行搜索便可。javascript

習題主要選自Orelly出版的《數據結構與算法javascript描述》一書。前端

參考代碼可見:https://github.com/dashnowords/blogs/tree/master/Structure/Dictionaryjava

字典的基本知識

鍵值對形式存儲數據的數據結構,在Javascript中更多地是直接使用對象,通常只在有排序需求的場景下會用到本篇中構造的Dictionary類,由於對象屬性是無序的。git

字典的應用

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

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,使單詞按字母順序顯示。
相關文章
相關標籤/搜索