Advertisement
shoodymon

TreeManager.cs

May 5th, 2024
723
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows.Controls;
  7. using System.Windows.Diagnostics;
  8.  
  9. namespace Trees_CourseProject
  10. {
  11.     public enum TreeType { BinarySearchTree, AVLTree, RedBlackTree }
  12.     public class TreeManager
  13.     {
  14.         public BinarySearchTree binarySearchTree;
  15.         public AVLTree avlTree;
  16.         public RedBlackTree redBlackTree;
  17.         public TreeDrawer treeDrawer;
  18.         public Canvas canvas;
  19.  
  20.         public TreeManager(Canvas canvas)
  21.         {
  22.             this.canvas = canvas;
  23.             binarySearchTree = new BinarySearchTree(canvas);
  24.             avlTree = new AVLTree(canvas);
  25.             redBlackTree = new RedBlackTree(canvas);
  26.             treeDrawer = new TreeDrawer(canvas);
  27.         }
  28.  
  29.         public void Insert(int value, TreeType treeType)
  30.         {
  31.             switch (treeType)
  32.             {
  33.                 case TreeType.BinarySearchTree: binarySearchTree.Insert(value); break;
  34.                 case TreeType.AVLTree:          avlTree.Insert(value);          break;
  35.                 case TreeType.RedBlackTree:     redBlackTree.Insert(value);     break;
  36.                 default: throw new ArgumentException("Неподдерживаемый тип дерева!");
  37.             }
  38.         }
  39.  
  40.         public void Delete(int value, TreeType treeType)
  41.         {
  42.             switch (treeType)
  43.             {
  44.                 case TreeType.BinarySearchTree: binarySearchTree.Delete(value); break;
  45.                 case TreeType.AVLTree:          avlTree.Delete(value);          break;
  46.                 case TreeType.RedBlackTree:     redBlackTree.Delete(value);     break;
  47.                 default: throw new ArgumentException("Неподдерживаемый тип дерева!");
  48.             }
  49.         }
  50.  
  51.         public bool Search(int value, TreeType treeType)
  52.         { switch (treeType)
  53.             {
  54.                 case TreeType.BinarySearchTree: return binarySearchTree.Search(value);
  55.                 case TreeType.AVLTree:          return avlTree.Search(value);
  56.                 case TreeType.RedBlackTree:     return redBlackTree.Search(value);
  57.                 default: throw new ArgumentException("Неподдерживаемый тип дерева!");
  58.             }
  59.         }
  60.  
  61.     }
  62. }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement