insert(word)傳入乙個單詞後構造字首樹的時候,將字串word轉化成字元陣列進行遍歷,要判斷單詞的當前字元是否在字首樹中,如果不在就要建立這個結點物件;如果存在就使用。將當前結點值變為孩子結點,所以要定義乙個指標currentnode初始值是this。
search(word)傳入乙個單詞判斷是否在字首樹中,將單詞word轉化為字元陣列遍歷,(需要對特殊情況的word進行判斷)。如果當前字元存在於字首樹中就繼續遍歷下乙個字元,如果不存在就讓結果result=false。當遍歷完當前字元陣列的時候,還要判斷此時currentnode指標指向的結點是否是葉子結點,如果是那麼此時search的結果才是真正為true。
startwith就簡單的多了,與search類似,不過遍歷完之後不再需要對尾結點進行判斷。
編輯器
public class tire
/*** 插入乙個單詞
* @param word 單詞
*/public void insert(string word)
/*** 插入乙個單詞
* @param word 單詞
*/public void insert(string word) else
}//這個標識很重要
currentnode.endasword=true;}}
/*** 檢索指定單詞是否在樹中
* @param word 單詞
*/public boolean search(string word) else
}if(result)
}return result;
}/**
* 檢索指定字首是否在樹中
* @param word 單詞
*/public boolean startswith(string prefix) else}}
return result;
}}
Trie的乙個實現
trie.h 檔案 ifndef trie h define trie h include include include include include using namespace std inline int sub size int level struct search tree cha...
Trie樹演算法實現 c 版
老規矩。推薦部落格 trie樹詳解 如下 created by administrator on 2020 2 18.include include include include include include include using namespace std typedef struct ...
Trie樹的實現
一 定義 trie,又稱字典樹,是一種用於快速檢索的二十六叉樹結構。典型的空間換時間 二 結構圖 三 原理 特別地 和二叉查詢樹不同,在trie樹中,每個結點上並非儲存乙個元素。四 性質 0 利用串的公共字首,節約記憶體 1 在trie樹上進行檢索總是始於根結點 2 根節點不包含字元,除根節點外的每...