internal ImMapTree(ImMapData <V> data, ImMap <V> left, ImMap <V> right, int height) { Data = data; Left = left; Right = right; TreeHeight = height; }
internal ImMapTree(ImMapData <V> data, ImMapData <V> leftData, ImMapData <V> rightData) { Data = data; Left = leftData; Right = rightData; TreeHeight = 2; }
internal ImMapTree(ImMapData <V> data, ImMapTree <V> left, ImMapTree <V> right) { Data = data; Left = left; Right = right; TreeHeight = left.TreeHeight > right.TreeHeight ? left.TreeHeight + 1 : right.TreeHeight + 1; }
internal ImMapTree(ImMapData <V> data, ImMap <V> left, int rightHeight, ImMap <V> right) { Data = data; Left = left; Right = right; var leftHeight = left.Height; TreeHeight = leftHeight > rightHeight ? leftHeight + 1 : rightHeight + 1; }