private static void AddBothTails(Node <T> node, ZippedSlices zippedSlices, T value) { node.Children = new ConcurrentDictionary <char, Node <T> > { { zippedSlices.FirstTail[0], new Node <T>(zippedSlices.FirstTail, node.Values, node.Children) }, { zippedSlices.SecondTail[0], new Node <T>(zippedSlices.SecondTail, value) } }; node.Values = new HashSet <T>(); node.Key = zippedSlices.Head; }
private static void AddFirstTail(Node <T> node, ZippedSlices zippedSlices, T value) { var leftChild = new Node <T>(zippedSlices.FirstTail, node.Values, node.Children); node.Values = new HashSet <T> { value }; node.Key = zippedSlices.Head; node.Children = new ConcurrentDictionary <char, Node <T> > { { zippedSlices.FirstTail[0], leftChild } }; }