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