2014-04-02 84 views
0

我已經用java語言創建了一個後綴樹。我們知道後綴樹的應用之一是從樹中搜索字符串。所以我的問題是,如果搜索字符串存在於後綴樹中,我如何遍歷後綴樹的每個節點才能找到它。在後綴樹中遍歷

預先感謝您。

+1

遍歷後綴樹與遍歷二叉搜索樹不太可能有很大不同。如果你有一些你寫的代碼,你能突出你困惑的地方嗎? – Makoto

+0

[Wikipedia article](http://en.wikipedia.org/wiki/Suffix_tree)對後綴樹進行了很好的介紹,包括如何執行搜索的描述。此外,您還應該花一些時間閱讀相關問題(請參閱右側列表)和相關答案。我想你會在那裏找到你的答案。 –

回答

0

你應該張貼代碼...

林假設這是一個二叉樹...繼承人的僞

findString(RootNode,StringWeWant){ 
    if RootNode == StringWeWant{ 
    WERE DONE 
    } 
    else if RootNode < StringWeWant (string comparison){ 
    findString(RootNode.rightchild, StringWeWant) 
    } 
    else{ 
    findString(RootNode.leftchild,StringWeWant) 
    } 

} 

因此,大家可以看到這是你可以創建一個遞歸函數最初測試根節點以查看它是否是我們想要查找的字符串。如果根節點小於我們想要的字符串,我們想要遍歷右邊。如果它更大,則比左轉。我們可以調用相同的函數,但傳入我們想要比較的新節點,直到找到我們想要的字符串。

希望它有幫助。

+0

我正在學習算法課程,我不明白如何在後綴樹中遍歷。我還沒有寫任何代碼。互聯網上有很多後綴樹的實現,但沒有任何與遍歷相關的內容。根據我的理解,後綴樹的節點可能有兩個以上的子節點。 – Learner11

+0

所以你有一個字符串的後綴樹,你正在尋找原始字符串的子字符串? – asdf

+0

是的,我有一個字符串的後綴樹,我想從這棵樹中搜索一個子字符串。 – Learner11