208. 实现 Trie (前缀树)

Trie(前缀树/字典树)及其应用

字典树节点的定义和字符串的构造。

代码如下:

struct Node{
    Node* nxt[26];//这里可以初始化为更多的子节点
    int flag;//标记该到节点是不是一个单词
    
    Node(){ //构造函数,初始化每个子节点为NULL,且该节点不表示一个单词,即flag=0 
        for(int i=0;i<26;i++) nxt[i]=NULL;
        flag=0; 
    } 
};

Node* root;//

void init(){
    root=new Node();//为该空指针分配一块内存 

void insert(char *s)
{
   int size=strlen(s);
   Node* now=root;
   
   for(int i=0;i<size;i++)
   {
       int to=s[i]-‘a’;
       if(now->nxt[to]==NULL) now->nxt[to]=new Node();
       
    now=now->nxt[to];
   }    
   now->flag=1;//插入一个单词完成,标记结束的那个节点的flag为一 

 

代码来自b站一acm大佬的讲解视频(橙子讲算法)

其实知道了insert操作以后,search和stratwith操作就是非常简单的,异曲同工而已。

https://leetcode-cn.com/problems/implement-trie-prefix-tree/description/

    原文作者:Trie树
    原文地址: https://blog.csdn.net/qq_31699373/article/details/82384969
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞