示例#1
0
 public void MoveTo(char c)
 {
     if (!CanMoveTo(c))
     {
         throw new Exception("Tried to move to an invalid path.");
     }
     CurrentNode = CurrentNode.GetChild(c);
 }
示例#2
0
 public Tri(List<string> words)
 {
     RootNode = new TriNode('\0');
     if(!(words == null))
     {
         words.ForEach(word => RootNode.AddString(word));
     }
 }
示例#3
0
 public Tri(List <string> words)
 {
     RootNode = new TriNode('\0');
     if (!(words == null))
     {
         words.ForEach(word => RootNode.AddString(word));
     }
 }
示例#4
0
        public override bool Equals(object obj)
        {
            TriNode node = obj as TriNode;

            if (node == null)
            {
                return(false);
            }
            return(this.NodeChar == node.NodeChar);
        }
示例#5
0
 public void AddString(string str)
 {
     if(str == null)
     {
         return;
     }
     if(str.Length == 0) { AddChild('\0'); return; }
     char c = str.ToArray()[0];
     TriNode possibleNode = GetChild(c);
     if(possibleNode == null)
     {
         possibleNode = new TriNode(c);
         _nodeSet.Add(possibleNode);
     }
     _nodeSet.Add(possibleNode);
     possibleNode.AddString(str.Substring(1));
 }
示例#6
0
        public void AddString(string str)
        {
            if (str == null)
            {
                return;
            }
            if (str.Length == 0)
            {
                AddChild('\0'); return;
            }
            char    c            = str.ToArray()[0];
            TriNode possibleNode = GetChild(c);

            if (possibleNode == null)
            {
                possibleNode = new TriNode(c);
                _nodeSet.Add(possibleNode);
            }
            _nodeSet.Add(possibleNode);
            possibleNode.AddString(str.Substring(1));
        }
示例#7
0
 public void MoveTo(char c)
 {
     if (!CanMoveTo(c)) { throw new Exception("Tried to move to an invalid path."); }
     CurrentNode = CurrentNode.GetChild(c);
 }
示例#8
0
 public TriNavigator(TriNode seedNode)
 {
     CurrentNode = seedNode;
 }
示例#9
0
 public TriNavigator(TriNode seedNode)
 {
     CurrentNode = seedNode;
 }