trie樹,即字典樹.常用於搜尋提示。核心思想:空間換時間。利用字串的公共字首來降低查詢時間的開銷從而提高效率。3個特點:
//樹的定義
public
class
trie
public
trienode
(char val)
}//樹的根節點
trienode root;
/** * 初始化trie資料結構
*/public
trie()
}
public
void
insert
(string word)
//移動currentnode為下乙個節點
currentnode = currentnode.next[c -
'a'];}
// 遍歷結束後,currentnode 此時為單詞最後乙個字元,標識isend為true
currentnode.isend =
true
;}
/*
1.判斷某個單詞是否在樹中
*/public
boolean
search
(string word)
currentnode = currentnode.next[c -
'a'];}
// 在字典樹中,每個單詞的末尾都有設定為true
// 如果當前是false,那麼代表未儲存這個單詞
return currentnode.isend;}/*
2.判斷某個字串是否為trie樹中某個單詞的字首
*/public
boolean
startswith
(string prefix)
currentnode = currentnode.next[c -
'a'];}
//匹配完字首之後返回true(在查詢單詞時,返回的是isend)
return
true
;}
public
boolean
delete
(string word)
currentnode = currentnode.next[c -
'a'];}
//單詞遍歷完後,currentnode此時指向單詞的最後乙個字元處
//1.是樹中的標記節點
if(currentnode.isend)
else
}//while迴圈正常結束,子節點全為空
Trie 字典樹 字首樹
所有的php檔案放到同乙個目錄下 trie charmap.php map.php stdmap.php trie.php trienode.php index.php test.php words.txt trienode.php class trienode 字典樹是利用字串的公共字首來節約儲存...
Trie 字典樹 字首樹
目錄trie是乙個多叉樹,trie專門為處理字串而設計的。使用我們之前實現的二分搜尋樹來查詢字典中的單詞,查詢的時間複雜度為o logn 如果有100萬 220 個單詞,則logn大約等於20,但是使用trie這種資料結構,查詢每個條目的時間複雜度,和一共有多少個條目無關!時間複雜度為o w w為被...
Trie樹,字典樹,字首樹
trie樹,字典樹,字首樹,都是同一顆樹,雜湊樹的變種題目鏈結 常用於文字的詞頻統計 它的特點就是,空間占用小,查詢快 它的儲存方式如下圖所示 對於從樹的根節點走到每乙個黑色節點所經過的路徑,如果將路徑上的字母都連起來的話,就都對應著詞典中的乙個單詞 trie樹,分別有插入,查詢和刪除3種操作,插入...