栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在C#中创建特里

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在C#中创建特里

这是我自己的代码,从我对如何从字符数组中查找单词的答案中提取出来的?:

public class Trie{  public struct Letter  {    public const string Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";    public static implicit operator Letter(char c)    {      return new Letter() { Index = Chars.IndexOf(c) };    }    public int Index;    public char ToChar()    {      return Chars[Index];    }    public override string ToString()    {      return Chars[Index].ToString();    }  }  public class Node  {    public string Word;    public bool IsTerminal { get { return Word != null; } }    public Dictionary<Letter, Node> Edges = new Dictionary<Letter, Node>();  }  public Node Root = new Node();  public Trie(string[] words)  {    for (int w = 0; w < words.Length; w++)    {      var word = words[w];      var node = Root;      for (int len = 1; len <= word.Length; len++)      {        var letter = word[len - 1];        Node next;        if (!node.Edges.TryGetValue(letter, out next))        {          next = new Node();          if (len == word.Length)          { next.Word = word;          }          node.Edges.Add(letter, next);        }        node = next;      }    }  }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号