private ITreeDataProvider GetTreeData(EnumTreeTypes treeType) { return(treeType switch { EnumTreeTypes.Heap => new DataProvidersFactory(SampleSize).GetProvider(EnumTreeDataProvider.Heap), EnumTreeTypes.BST => new DataProvidersFactory(SampleSize).GetProvider(EnumTreeDataProvider.BST), _ => throw new NotImplementedException("Unknown tree type '" + nameof(treeType) + "'"), });
private static ITree GetTree(EnumTreeTypes treeType) { return(treeType switch { EnumTreeTypes.Heap => new HeapTree(), EnumTreeTypes.BST => new BinarySearchTree(), _ => throw new NotImplementedException("Unknown tree type '" + nameof(treeType) + "'"), });
public BinaryTreeEstimation Estimate(EnumTreeTypes treeType) { var _tree = GetTree(treeType); var _treeData = new DataProvidersFactory(SampleSize).GetProvider(treeType == EnumTreeTypes.BST ? EnumTreeDataProvider.BST : EnumTreeDataProvider.Heap); return(new BinaryTreeEstimation() { Deserialize = _tree.CreateTree(_treeData.Data), Search = _tree.Search(_treeData.Tree, _treeData.AvgValue), Insert = _tree.Insert(_treeData.Tree, _treeData.NotFoundValue), }); }
public TraversalResults Traverse(EnumTreeTypes treeType) { //var _tree = GetTree(treeType); var treeData = GetTreeData(treeType); return(new TraversalResults() { Tree = treeData.Tree, BreadthFirstResult = new BreadthFirstTraversal().Traverse(treeData.Tree), InOrderResult = new InOrderTraversal().Traverse(treeData.Tree), PostOrderResult = new PostOrderTraversal().Traverse(treeData.Tree), PreOrderResult = new PreOrderTraversal().Traverse(treeData.Tree), }); }