javascript
javascript map 排序_数据结构-JavaScript字典结构的编程实现
字典是一類特殊的數據元素的集合,字典的基本單元為數對,所謂數對是指類似(key,value)形式的數據。每一個數對結構包括了關鍵字key與該元素對應的value值,在一個普通字典所組成的數對集合中,關鍵字是不相等的,多重字典允許數對具有相同關鍵字。字典可以使用基本數據結構數組順序表與鏈表進行設計與實現。對與使用數組形式實現字典可直接借助javascript提供的數組key=>value,定義字典數據存儲結構。除此之外也可以通過鏈表形式實現字典的定義與數據存儲。常用數組與鏈表實現字典示意如下圖所示:
數組字典類型1
數組字典類型2
鏈表字典類型
字典結構的數組存儲與鏈式存儲示意如上圖所示,在明確字典的數據存儲形式之后可以進一步定義字典的相關數據操作,字典的操作主要包括字典長度的獲取,字典插入操作、字典刪除操作等。綜上所述,字典抽象數據類型描述如下圖所示:
字典抽象數據類型
字典抽象數據類型描述如上圖所示,本例主要結合編程所使用的JavaScript選擇語言所提供的基本類型進行字典數據結構的編程實現。JavaScript本身提供的Map對象就是字典類型數據結構,因此我們可以以該結構為基礎進行字典類的編程實現。使用JavaScript語言Map類實現抽象數據結構字典所定義的方法說明如下:
1、empty()
該函數主要用于實現判斷字典是否為空。 Map對象提供了size屬性主要用于對MAP對象長度進行判斷。當size為0表明字典為空。
2、size()
該函數主要用于實現計算字典長度 。直接返回map.size屬性值作為字典的長度。
3、find(key)
該函數主要用于實現返回關鍵字為key的數對 。使用map.has(key)對key進行判斷,如果存在則通過get方法獲取value,并返回key與value對應的數對。
4、insert(p)
該函數主要用于實現向字典中插入p數對 。直接調用map.set(key,value)插入數對。
5、erase(key)
該函數主要用于實現刪除key鍵對應的數對 。直接調用map.delete(key)從map中刪除元素。
6、has(p):
該函數主要用于實現判斷字典中是否存在p數對,存在返回true,否則返回false。使用map.has()進行判斷。如果存在key則進一步判斷對應的值是否與參數提供的值相等。
7、clear()
該函數主要用于實現清除字典數組 。使用map.clear()刪除元素。
以上給出在JavaScript下自定義字典類的基本方法描述,由此可見借助Map對象可以非常方便實現字典類的定義與編寫。甚至在實際使用過程中直接使用Map表示字典。字典類實現過程中需要使用到一個結構為數對。因此我們首先定了字典數對類,該類描述如下:
數對類
以所定義的數對為基礎,結合Map實例化對象的使用我們可以進一步完成字典類的定義,字典類的定義描述如下:
字典類設計
字典類定義如上圖所示,類提供構造函數用于實現在類實例化過程中完成Map對象的實例化。該類主要方法描述如下圖:
empty函數
find函數
clear與has函數
insert與erase函數
本頭條號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可以聯系作者,共同探討。期待大家關注!如需案例完整代碼請關注并私信,往期數據結構文章鏈接如下:
數據結構-JavaScript線性表的數組描述與實現
數據結構-JavaScript鏈表的設計與實現
數據結構-JS優先隊列實現及排序應用
數據結構-使用JavaScript編程實現隊列(Queue)
總結
以上是生活随笔為你收集整理的javascript map 排序_数据结构-JavaScript字典结构的编程实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gitlab 安装_Linux学习14C
- 下一篇: java异步处理_SpringBoot异