private NodeFirstLevelTop <T> PutInnerFirst(NodeFirstLevelTop <T> node, string s, int d, T value) { if (node == null) { node = new NodeFirstLevelTop <T>(); } int index = (s[d] - _startSymbol); NodeFirstLevelBottom <T> node1 = node.Next[index]; if (node1 == null) { node1 = new NodeFirstLevelBottom <T>(); } d++; int index1 = (s[d] - _startSymbol); node1.Next[index1] = PutInnerOther(node1.Next[index1], s, d + 1, value); node.Next[index] = node1; return(node); }
private void Put(string s, T value) { _root = PutInnerFirst(_root, s, 0, value); }