字典
public
inte***ce
map
private
class
node
public
node
(k key)
public
node()
public string tostring()
private node dummyhead;
private
int size;
public
linkedlistmap()
public
intgetsize()
public
boolean
isempty()
private node getnode
(k key)
return null;
}public
boolean
contains
(k key)
public v get
(k key)
public
void
add(k key,v value)
else
//若已經有這個鍵值對了
node.value=value;
}public
void
set(k key,v newvalue)
public v remove
(k key)
if(prev.next!=null)
return null;
//如果沒發現要刪的
}
public
class
bstmap
comparable
,v>
implements
map }
private node root;
private
int size;
public
bstmap()
public
intgetsize()
public
boolean
isempty()
public
void
add(k key,v value)
private node add
(node node,k key,v value)
if(key.
compareto
(node.key)
<0)
node.left=
add(node.left,key,value)
;//左節點為遞迴值
else
if(key.
compareto
(node.key)
>0)
node.right=
add(node.right,key,value)
;else
node.value=value;
return node;
//返回根節點
}//返回以node為根節點的二分搜尋樹中,key所在的節點
private node getnode
(node node,k key)
public
boolean
contains
(k key)
public v get
(k key)
public
void
set(k key,v newvalue)
//返回以node為根的二分搜尋樹最小鍵值所在節點
private node minimum
(node node)
//從二分搜尋樹中刪除最小值所在節點,返回最小值
public e removemin()
//刪除以node為根的二分搜尋樹最小節點
//返回刪除節點後新的二分搜尋樹的根
private node removemin
(node node)
node.left=
removemin
(node.left)
;return node;
}//從二分搜尋樹中刪除元素為e的節點
public v remove
(k key)
return null;
}//刪除以node為根的二分搜尋樹中鍵為key的節點,遞迴演算法
//返回刪除節點後新的二分搜尋樹的根
private node remove
(node node, k key)
else
if(key.
compareto
(node.key)
>0)
else
//待刪除節點左子樹為空的情況
if(node.right==null)
//待刪除節點左右子樹均不為空的情況
//找到比這個待刪除節點大的最小節點,即待刪除節點右字數的的最小節點
//用這個節點頂替待刪除節點位置
node successor =
minimum
(node.right)
; successor.right=
removemin
(node.right)
;//新的代替的節點右子樹為刪除最小值的樹
successor.left =node.left;
node.left=node.right=null;
return successor;
}// 測試:每個詞的詞頻
public
static
void
main
(string[
] args)
system.out.
println
("totel different words:"
+map.
getsize()
);system.out.
println
("frequency of pride"
+map.
get(
"pride");
)}}
深入理解java對映map的底層操
對映 層次結構 1 map 介面 其 子介面和其實現類如下 一 enummap 抽象類 implementsmap 二 sortedmap 介面 exntends map treemap extends sortedmap treemap加入如和刪除元素是根據key來進行的,其原理和treeset完...
解剖Go語言map底層實現
map是go語言中基礎的資料結構,在日常的使用中經常被用到。但是它底層是如何實現的呢?golang中map的底層實現是乙個雜湊表,因此實現map的過程實際上就是實現散表的過程。在這個雜湊表中,主要出現的結構體有兩個,乙個叫hmap a header for a go map 乙個叫bucket。這兩...
Map的底層結構
map是以鍵值對來儲存物件的,它的底層實際上是陣列和鍊錶來組成的 當使用put方法時,先查詢出陣列位置是否存在物件,通過key.hashcode對陣列長度取餘 存在,則把裡面的鍊錶拿出來,判斷鍊錶裡面是否存在key值與傳遞過來的key值一樣的物件,存在,則把傳遞過來的value取代鍊錶key對應的v...