public bool IsWord(string word) { word = word.ToLower().Trim(); TriesNode curr = root; bool found = false; foreach (char alpha in word.ToCharArray()) { found = curr.Map.TryGetValue(alpha, out curr); if (!found) { return(false); } } return(found && curr != null && curr.IsWord); }
/// <summary> /// Adds byte to container /// </summary> /// <param name="b">byte</param> /// <returns>Added node</returns> public TriesNode <TT> Add(byte b) { while (NodesCount >= Nodes.Length) { var newNodes = new TriesNode <TT> [Nodes.Length + _initialCapacity]; for (int i = 0; i < Nodes.Length; i++) { newNodes[i] = Nodes[i]; } Nodes = newNodes; } var ret = new TriesNode <TT>(b, _initialCapacity); Nodes[NodesCount++] = ret; return(ret); }
public void AddWord(string word) { word = word.ToLower().Trim(); TriesNode curr = root; TriesNode tempNode; foreach (char alpha in word.ToCharArray()) { curr.Map.TryGetValue(alpha, out tempNode); if (tempNode == null) { tempNode = new TriesNode(); curr.Map.Add(alpha, tempNode); } curr = tempNode; } curr.Value = word; curr.IsWord = true; }
/// <summary> /// Container constructor /// </summary> /// <param name="capacity">Nodes tabel intiial capacity</param> public TriesContainer(int capacity) { Nodes = new TriesNode <TT> [capacity]; _initialCapacity = capacity; }
public Tries() { root = new TriesNode(); }