Trie o struct trie Node trie Node next26

  • Slides: 15
Download presentation

Trie树的实现 o 结构体 struct trie. Node { trie. Node * next[26]; bool isword; }Root;

Trie树的实现 o 结构体 struct trie. Node { trie. Node * next[26]; bool isword; }Root;

Trie树的实现 o 插入同时也是建树的过程 void insert(char * tar) { trie. Node * p = &

Trie树的实现 o 插入同时也是建树的过程 void insert(char * tar) { trie. Node * p = & Root; int id; while(*tar) { id = *tar – ‘a’; if(p->next[id] == NULL) { p->next[id] = new trie. Node(); } p = p->next[id]; tar ++; } p->isword = true; }

Trie树的实现 o 查询 bool search(char * tar) { trie. Node * p = &

Trie树的实现 o 查询 bool search(char * tar) { trie. Node * p = & Root; int id; while(*tar) { id = *tar – ‘a’; if(p->next[id] == NULL) { return false; } p = p->next[id]; tar ++; } if ( p->isword == true ) return true; else return false; }

Trie树是做什么的? o o o o 例2:PKU 2503 Babelfish Sample Input dog ogday cat atcay

Trie树是做什么的? o o o o 例2:PKU 2503 Babelfish Sample Input dog ogday cat atcay pig igpay froot ootfray loopslay atcay ittenkay oopslay Sample Output cat eh loops

Trie树是做什么的? o o 例3: PKU 1204 Word Puzzles n n n 1000 * 1000

Trie树是做什么的? o o 例3: PKU 1204 Word Puzzles n n n 1000 * 1000 8个方向 1000个待查单词 MARGARITA 0 15 G

Trie树是做什么的? o o o o o 例4:PKU 2513 Colored Sticks Sample Input blue red

Trie树是做什么的? o o o o o 例4:PKU 2513 Colored Sticks Sample Input blue red violet cyan blue o Total Of Sticks blue magenta n Up To 250000 magenta cyan o 欧拉回路 Sample Output o 节点存储使用 Possible