public BinaryTreeEstimation Estimate(eTreeTypes treeType) { var _tree = GetTree(treeType); var _treeData = new DataProvidersFactory(SampleSize).GetProvider(treeType == eTreeTypes.BST ? eTreeDataProvider.BST : eTreeDataProvider.Heap); return(new BinaryTreeEstimation() { Deserialize = _tree.CreateTree(_treeData.Data), Search = _tree.Search(_treeData.Tree, _treeData.AvgValue), Insert = _tree.Insert(_treeData.Tree, _treeData.NotFoundValue), }); }
private ITreeDataProvider GetTreeData(eTreeTypes treeType) { switch (treeType) { case eTreeTypes.Heap: return(new DataProvidersFactory(SampleSize).GetProvider(eTreeDataProvider.Heap)); case eTreeTypes.BST: return(new DataProvidersFactory(SampleSize).GetProvider(eTreeDataProvider.BST)); } throw new NotImplementedException("Unknown tree type '" + nameof(treeType) + "'"); }
private ITree GetTree(eTreeTypes treeType) { switch (treeType) { case eTreeTypes.Heap: return(new HeapTree()); case eTreeTypes.BST: return(new BinarySearchTree()); } throw new NotImplementedException("Unknown tree type '" + nameof(treeType) + "'"); }
public TraversalResults Traverse(eTreeTypes 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), }); }