trie樹主要用於字串的儲存,統計,查詢。其中字串的確定是根據節點在樹中的位置所決定的,並不是將字串的整個資訊存在節點中。
如下圖所示:
藍色節點表示為單詞字串的結尾,圖中包含了(ab,ac,b,bcd,cf)
1、節點的結構體
const
int char_num=26;
//(a-z)
struct trienode
};
2、插入單詞(insert)
void
insert
(string word)
ptr-
>is_end=
true
;}
3、查詢單詞(search)
bool
search
(string word)
return ptr-
>is_end;
}
4、判斷字首(startswith)
bool
startswith
(string prefix)
return
true
;}
字典樹的優點就是利用了字串之間的公共字首,減少了儲存的空間,提高了搜尋的效率。 字串 Trie樹(字典樹)
關於這個字串的資料結構我就不多說什麼了,不知道的可以戳這裡.trie樹在oi中應用廣泛,時間優秀,缺點就是空間占用大。下文中我們將字符集大小稱為 k,模式串長度為p trie支援o np 建樹,o p 插入,查詢,刪除。可是如果二維陣列儲存的話,就要耗費kn 的空間,基本無法承受。空間上我們可以用指...
字串 Trie字典樹
目錄 trie字典樹 例題 1.什麼是字典樹?2.字典樹的作用及性質 3.建樹 code 效果圖 4.查詢 code 5.優勢 6.回到例題 code 7.結束語 8.練習 給出n個字串,以及m個詢問。每次詢問讀入乙個字串,求該字串是多少個字串的字首 每個字串長度小於10 2,n和m小於10 5。樣...
字串統計 Trie樹
題目 維護乙個字串集合,支援兩種操作 i x 向集合中插入乙個字串x q x 詢問乙個字串在集合 現了多少次。共有n個操作,輸入的字串總長度不超過 10 5,字串僅包含小寫英文本母。輸入格式 第一行包含整數n,表示運算元。接下來n行,每行包含乙個操作指令,指令為 i x 或 q x 中的一種。輸出格...