static void Main(string[] args) { Random r = new Random(); //Random r = new Random(); List <int> used = new List <int>(); var tree = new BTree(3); for (int i = 0; i < 50; i++) { int newVal; do { newVal = r.Next(0, 50); } while (used.Contains(newVal)); used.Add(newVal); tree.Insert(newVal); //Console.WriteLine(tree); //tree.Print(tree.Root, 0); //Console.WriteLine($"-------{i}------- Dodano: {newVal}"); } Console.WriteLine("Before saving to file."); Console.WriteLine(tree); BTree.WriteToBinaryFile <BTree>("xd", tree); var tree2 = BTree.ReadFromBinaryFile <BTree>("xd"); Console.WriteLine("After reading from file."); Console.WriteLine(tree2); int odp; do { Console.WriteLine("Please select option."); Console.WriteLine("1. Add element, 2. Remove element, 3.Print tree, 4. Exit."); odp = Int32.Parse(Console.ReadLine()); switch (odp) { case 1: try { Console.Write("Enter value to add: "); int x = Int32.Parse(Console.ReadLine()); tree.Insert(x); }catch (Exception e) { } break; case 2: try { Console.Write("Enter value to remove: "); int y = Int32.Parse(Console.ReadLine()); tree.Delete(y); } catch (Exception e) { } break; case 3: Console.WriteLine(tree); break; default: return; } } while (odp != 4); //for (int i = 0; i < 50; i++) //{ // int val = used[i]; // tree.Delete(val); // Console.WriteLine(tree); // Console.WriteLine($"-------{i}------- Usunięto: {val}"); //} Console.ReadKey(); }
////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Print the tree in descending order public static void TraverseDescending(BTree node) { }
public void MergeTrees(BTree A, BTree B) { B.GetTree(0, 0, B.tree, A); }
static void Main() { Console.SetWindowSize(150, 30); Random rnd = new Random(); BTree treeA = new BTree(); BTree treeB = new BTree(); BTree treeA_NoRandom = new BTree(); BTree treeB_NoRandom = new BTree(); int countInArray = 7; int[] array = new int[countInArray]; Console.WriteLine("──────────────────────────────"); Console.WriteLine("Входные числав в дерево A:"); for (int k = 0; k < countInArray; k++) { int randomDigit = rnd.Next(1, 99); array[k] = randomDigit; Console.Write(randomDigit + " "); } Console.WriteLine("\n──────────────────────────────"); for (int k = 0; k < countInArray; k++) { treeA_NoRandom.InsertNotRandom(array[k]); treeA.Insert(array[k]); } Console.WriteLine("Обычное бинарное дерево A:"); treeA_NoRandom.PrintList(); treeA.FixTree(); Console.WriteLine("Рандомизированное бинарное дерево A:"); treeA.PrintList(); Console.WriteLine(); treeA.PrintTreeRev(); treeA.PrintCount(); treeA.PrintLvl(); treeA.PrintCountInsertAsRoot(); treeA.PrintDataInsertAsRoot(); Console.WriteLine("──────────────────────────────"); Console.WriteLine("Входные числав в дерево B:"); for (int k = 0; k < countInArray; k++) { int randomDigit = rnd.Next(1, 99); array[k] = randomDigit; Console.Write(randomDigit + " "); } Console.WriteLine("\n──────────────────────────────"); for (int k = 0; k < countInArray; k++) { treeB_NoRandom.InsertNotRandom(array[k]); treeB.Insert(array[k]); } Console.WriteLine("Обычное бинарное дерево B:"); treeB_NoRandom.PrintList(); treeB.FixTree(); Console.WriteLine("Рандомизированное бинарное дерево B:"); treeB.PrintList(); Console.WriteLine(); treeB.PrintTreeStr(); treeB.PrintTreeSim(); treeB.PrintCount(); treeB.PrintLvl(); treeB.PrintCountInsertAsRoot(); treeB.PrintDataInsertAsRoot(); treeA.MergeTrees(treeA, treeB); treeA.FixTree(); Console.WriteLine("Элементы дерева B добавлены в дерево A:"); treeA.PrintList(); Console.WriteLine(); treeA.PrintTreeRev(); treeA.PrintCount(); treeA.PrintLvl(); treeA.PrintCountInsertAsRoot(); treeA.PrintDataInsertAsRoot(); Console.ReadKey(); }
static void Main(string[] args) { BTree Btree = new BTree(); bool flag = true; while (flag) { Console.Clear(); Console.WriteLine("Demo: BTree of Integer"); Console.WriteLine("--------------------------------"); Console.WriteLine("1 - Insert node"); Console.WriteLine("2 - Delete node"); Console.WriteLine("3 - Search node"); Console.WriteLine("4 - Traverse Tree In-Order"); Console.WriteLine("5 - Display Tree"); Console.WriteLine("6 - Exit"); Console.WriteLine("--------------------------------"); ConsoleKeyInfo cki = Console.ReadKey(true); switch (cki.Key) { case ConsoleKey.D1: Console.WriteLine("Enter node to insert:"); string insertInput = Console.ReadLine(); if (Int32.TryParse(insertInput, out int insertNode)) { Btree.Insert(insertNode); Console.WriteLine("Node " + insertNode + " has been inserted."); } else { Console.WriteLine("Invalid input. Enter integer number"); } Console.WriteLine("\nPress any key..."); Console.ReadLine(); break; case ConsoleKey.D2: Console.WriteLine("Enter node to delete:"); string deleteInput = Console.ReadLine(); if (Int32.TryParse(deleteInput, out int deleteNode)) { if (Btree.Search(deleteNode) == false) { Console.WriteLine("No such node in the tree"); } else { Btree.Delete(deleteNode); Console.WriteLine("Node " + deleteNode + " has been deleted."); } } else { Console.WriteLine("Invalid input. Enter integer number"); } Console.WriteLine("\nPress any key..."); Console.ReadLine(); break; case ConsoleKey.D3: Btree.PrintTree(); Console.WriteLine("Enter node to search:"); string getInput = Console.ReadLine(); if (Int32.TryParse(getInput, out int getNode)) { if (Btree.Search(getNode) == true) { Console.WriteLine("Node " + getNode + " is present in the tree"); } else { Console.WriteLine("No such node in the tree"); } } else { Console.WriteLine("Invalid input. Enter integer number"); } Console.WriteLine("\nPress any key..."); Console.ReadLine(); break; case ConsoleKey.D4: Console.WriteLine("Current tree In-Order traverse:"); Btree.TraverseInOrder(); Console.WriteLine("\nPress any key..."); Console.ReadLine(); break; case ConsoleKey.D5: Console.WriteLine("Current tree(from left to right):"); Btree.PrintTree(); Console.WriteLine("\nPress any key..."); Console.ReadLine(); break; case ConsoleKey.D6: flag = false; break; default: Console.WriteLine("Invalid menu item, enter numbers 1-4"); Console.WriteLine("\nPress any key..."); Console.ReadLine(); break; } } }
private void Button5_Click(object sender, EventArgs e) { // Exercise #2 // add numbers from the test this.richTextBox1.Clear(); BTree node = null; BTree root = null; root = new BTree(1, root, true); node = new BTree(5, root, true); node = new BTree(15, root, true); node = new BTree(20, root, true); node = new BTree(21, root, true); node = new BTree(22, root, true); node = new BTree(23, root, true); node = new BTree(24, root, true); node = new BTree(25, root, true); node = new BTree(30, root, true); node = new BTree(35, root, true); node = new BTree(37, root, true); node = new BTree(40, root, true); node = new BTree(55, root, true); node = new BTree(60, root, true); List <int> list = new List <int>(); this.richTextBox1.Text += "\n"; BTree.TraverseAscending(root); this.richTextBox1.Clear(); node = null; root = null; list = TraverseAscendingII(root); VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root); //this will only work if the numbers are put into the list in the order they are on the test. //but since the visualizer isnt working, I can't really check root = new BTree(list[9], root, true); node = new BTree(list[3], root, true); node = new BTree(list[11], root, true); node = new BTree(list[1], root, true); node = new BTree(list[5], root, true); node = new BTree(list[9], root, true); node = new BTree(list[13], root, true); node = new BTree(list[0], root, true); node = new BTree(list[2], root, true); node = new BTree(list[4], root, true); node = new BTree(list[6], root, true); node = new BTree(list[8], root, true); node = new BTree(list[10], root, true); node = new BTree(list[12], root, true); node = new BTree(list[14], root, true); //do whatever with the visualizer visualizeBinaryTree = new VisualizeBinaryTree(root); BTree.TraverseAscending(root); }
public BTreeSet(BTree <T> bTree) { _bTree = bTree; }
private void Exercise5__Click(object sender, EventArgs e) { // Exercise #5 // use the code in Button3_Click to add the 26 letters to the tree // then remove nodes "C", "I" and "A" // using this code to remove each node: // // create new freestanding node for "C" // nodeToDelete = new BTree("C", null); // BTree.DeleteNode(nodeToDelete, root); // add the newline and call BTree.TraverseAscending() after each delete this.richTextBox.Clear(); BTree node = null; BTree nodeToDelete = null; BTree root = null; // Your code here //add 26 letters to tree node = new BTree("M", null); root = node; node = new BTree("F", root); node = new BTree("C", root); node = new BTree("B", root); node = new BTree("A", root); node = new BTree("E", root); node = new BTree("D", root); node = new BTree("J", root); node = new BTree("I", root); node = new BTree("H", root); node = new BTree("G", root); node = new BTree("L", root); node = new BTree("K", root); node = new BTree("P", root); node = new BTree("O", root); node = new BTree("N", root); node = new BTree("T", root); node = new BTree("S", root); node = new BTree("R", root); node = new BTree("Q", root); node = new BTree("W", root); node = new BTree("V", root); node = new BTree("U", root); node = new BTree("X", root); node = new BTree("Y", root); node = new BTree("Z", root); //remove C, I, and A nodeToDelete = new BTree("C", null); BTree.DeleteNode(nodeToDelete, root); //new line and traverse ascending this.richTextBox.Text += "\n"; BTree.TraverseAscending(root); //delete i nodeToDelete = new BTree("I", null); BTree.DeleteNode(nodeToDelete, root); //new line and traverse ascending this.richTextBox.Text += "\n"; BTree.TraverseAscending(root); //delete a nodeToDelete = new BTree("A", null); BTree.DeleteNode(nodeToDelete, root); //new line and traverse ascending this.richTextBox.Text += "\n"; BTree.TraverseAscending(root); this.richTextBox.Text += "\n"; BTree.TraverseAscending(root); VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root); }
private void Exercise4__Click(object sender, EventArgs e) { // Exercise #4 // prime the tree using the code in Button3_Click() // then insert the 15 random uppercase strings from Exercise #3 this.richTextBox.Clear(); BTree node = null; BTree root = null; // Your code here //code from button 3 node = new BTree("M", null); root = node; Random random = new Random(); node = new BTree("F", root); node = new BTree("C", root); node = new BTree("B", root); node = new BTree("A", root); node = new BTree("E", root); node = new BTree("D", root); node = new BTree("J", root); node = new BTree("I", root); node = new BTree("H", root); node = new BTree("G", root); node = new BTree("L", root); node = new BTree("K", root); node = new BTree("P", root); node = new BTree("O", root); node = new BTree("N", root); node = new BTree("T", root); node = new BTree("S", root); node = new BTree("R", root); node = new BTree("Q", root); node = new BTree("W", root); node = new BTree("V", root); node = new BTree("U", root); node = new BTree("X", root); node = new BTree("Y", root); node = new BTree("Z", root); //insert 15 random strings node = new BTree("Hi", root); node = new BTree("Cake", root); node = new BTree("My name is Victoria", root); node = new BTree("Spongebob squarepants", root); node = new BTree("pinapple", root); node = new BTree("Victoria", root); node = new BTree("Umbrella", root); node = new BTree("Cats are cool", root); node = new BTree("yellow", root); node = new BTree("Zebras have stripes", root); node = new BTree("I need coffee", root); node = new BTree("Suit and tie", root); node = new BTree("Rainbow", root); node = new BTree("Yo-yo", root); node = new BTree("Roots of a tree", root); //insert 30 numbers b/w 1 and 51 for (int i = 0; i < 30; i++) { //numbers between 1 and 51 node = new BTree(random.Next(1, 51), root); } this.richTextBox.Text += "\n"; BTree.TraverseAscending(root); this.richTextBox.Text += "\n"; BTree.TraverseDescending(root); VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root); }