hdu 1251 統計難題
這是乙個比較基礎的字典樹的題,通過它展示普通trie樹和壓縮字典樹的實現。
普通trie樹
#include
#include
using
namespace std;
struct node
}r[500000];
struct trie
void
add(
char
*s)//r[now].isfinish = true;
}int
query
(char
*s)return r[now]
.cnt;}}
;char s[25]
;trie myt;
intmain()
while
(scanf
("%s"
, s)
!=eof
)return0;
}
可以用孩子兄弟節點表示法 或者 在node裡面用vector表示孩子節點,可以節約空間,但時間可能會受影響。
壓縮字典樹
#include
#include
using
namespace std;
struct node
;char list[
10000000
], s[20]
;//list每次新增加的字母的和
//按樣例的順序插入list的變化banana bananad bananadee bananadeeabsolute bananadeeabsoluteacm
node *t =
new node,
*tnode;
//t根節點
int len, sz;
//len當前輸入的字串長度,sz是list長度
void
clear
(node *p)
intsame
(node *p,
int st)
void
diliver
(node *
&p,int ll)
void
insert
(node *
&p,int st)}}
intquery
(node* p,
int st)
return p-
>cnt;
}int
main()
while
(scanf
("%s"
, s)
!=eof
)return0;
}
這種方法比普通的trie樹節約空間,並且在本題中速度更快。 Trie樹的實現
一 定義 trie,又稱字典樹,是一種用於快速檢索的二十六叉樹結構。典型的空間換時間 二 結構圖 三 原理 特別地 和二叉查詢樹不同,在trie樹中,每個結點上並非儲存乙個元素。四 性質 0 利用串的公共字首,節約記憶體 1 在trie樹上進行檢索總是始於根結點 2 根節點不包含字元,除根節點外的每...
Trie樹(字典樹)的實現
trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的公共字首來降低查詢時間的...
Trie樹的C 實現
先給出lintcode的題目 實現trie樹 trie樹的一般性質如下 1.根節點不包含字元,除根節點外每乙個節點都只包含乙個字元。2.從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字串。3.每個節點的所有子節點包含的字元都不相同。那麼既然是樹,既然需要和字串匹配,那麼樹的節點怎麼定義...