字典樹(字首樹)的操作

2021-10-12 16:10:39 字數 1611 閱讀 1020

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種操作,插入...