Exemplo n.º 1
0
        private void Button1_Click(object sender, EventArgs e)
        {
            // load a tree with random numbers
            BTree  root = null;
            BTree  node;
            Random random = new Random();

            this.richTextBox1.Clear();

            for (int i = 0; i < 10; ++i)
            {
                node = new BTree(random.Next(100), root);

                if (i == 0)
                {
                    root = node;
                }
            }

            this.richTextBox1.Text += "\n";

            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 2
0
        private void Button2_Click(object sender, EventArgs e)
        {
            // load a tree in data-ascending order,
            // which will cause it to be unbalanced and poor-performing
            BTree root = null;
            BTree node;

            this.richTextBox1.Clear();

            for (int i = 0; i < 10; ++i)
            {
                //BTree node = new BTree(random.Next(100), root);
                node = new BTree(i, root);

                if (i == 0)
                {
                    root = node;
                }
            }

            this.richTextBox1.Text += "\n";
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 3
0
        private void Exercise6__Click(object sender, EventArgs e)
        {
            // Exercise #6
            // there are operator overloads to compare 2 BTree objects for BTree.data being string or int
            // enhance the overloads to support the Person object and compare using Person.age using:
            //     if (a.data.GetType() == typeof(Person))


            // create at least 15 new Person objects which correspond to members of your family
            // insert them into the tree starting with yourself
            this.richTextBox.Clear();

            BTree node = null;
            BTree root = null;

            // the Person class is defined below
            Person person = null;

            // Your code here


            this.richTextBox.Text += "\n";
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 4
0
        private void Button6_Click(object sender, EventArgs e)
        {
            // Exercise #3
            // insert 15 random uppercase strings

            this.richTextBox1.Clear();

            BTree node = null;
            BTree root = null;

            node = new BTree("BURN", root, false);
            node = new BTree("TRIPLE", root, false);
            node = new BTree("MIST", root, false);
            node = new BTree("TWILIGHT", root, false);
            node = new BTree("MOON", root, false);
            node = new BTree("AXE", root, false);
            node = new BTree("GOBLIN", root, false);
            node = new BTree("ICE", root, false);
            node = new BTree("DARK", root, false);
            node = new BTree("FOG", root, false);
            node = new BTree("ROOT", root, false);
            node = new BTree("MAGMA", root, false);
            node = new BTree("GEARS", root, false);
            node = new BTree("SPRING", root, false);
            node = new BTree("KNIFE", root, false);
            this.richTextBox1.Text += "\n";
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 5
0
        private void Button4_Click(object sender, EventArgs e)
        {
            // Exercise #1
            // insert 30 random numbers between 1 and 51

            this.richTextBox1.Clear();

            BTree node = null;
            BTree root = null;

            Random random = new Random();

            for (int i = 0; i < 10; ++i)
            {
                node = new BTree(random.Next(1, 52), root, false);

                if (i == 0)
                {
                    root = node;
                }
            }

            this.richTextBox1.Text += "\n";
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 6
0
        private void Exercise2__Click(object sender, EventArgs e)
        {
            // Exercise #2
            // prime the tree for numbers between 1 and 51
            // with 7 optimally distributed data points (setting isData = false)
            // then insert 30 random numbers between 1 and 51

            BTree  root = null;
            BTree  node;
            Random random = new Random();

            this.richTextBox.Clear();


            // Your code here

            this.richTextBox.Clear();

            node = new BTree(26, null);
            root = node;

            //insert 30 numbers b/w 1 and 51
            for (int i = 0; i < 30; ++i)
            {
                node = new BTree(random.Next(1, 52), root);
            }

            this.richTextBox.Text += "\n";

            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 7
0
        private void Exercise1__Click(object sender, EventArgs e)
        {
            // Exercise #1
            // insert 30 random numbers between 1 and 51

            BTree  root = null;
            BTree  node;
            Random random = new Random();

            this.richTextBox.Clear();

            // Your code here
            //clear the textbox
            this.richTextBox.Clear();

            //loop 30 times to insert rand numbers
            for (int i = 0; i < 30; ++i)
            {
                //node is a random number
                node = new BTree(random.Next(1, 51), root);

                //if first node, then that is the root node
                if (i == 0)
                {
                    root = node;
                }
            }

            this.richTextBox.Text += "\n";

            //print the tree ascending
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 8
0
        private void Button3_Click(object sender, EventArgs e)
        {
            // Prime a tree to hold alphabetical information

            this.richTextBox1.Clear();

            BTree node = null;
            BTree root = null;

            node = new BTree("M", null);
            root = node;

            node = new BTree("F", root, false);
            node = new BTree("C", root, false);
            node = new BTree("B", root, false);
            node = new BTree("A", root, false);
            node = new BTree("E", root, false);
            node = new BTree("D", root, false);

            node = new BTree("J", root, false);
            node = new BTree("I", root, false);
            node = new BTree("H", root, false);
            node = new BTree("G", root, false);
            node = new BTree("L", root, false);
            node = new BTree("K", root, false);

            node = new BTree("P", root, false);
            node = new BTree("O", root, false);
            node = new BTree("N", root, false);
            node = new BTree("T", root, false);
            node = new BTree("S", root, false);
            node = new BTree("R", root, false);
            node = new BTree("Q", root, false);

            node = new BTree("W", root, false);
            node = new BTree("V", root, false);
            node = new BTree("U", root, false);
            node = new BTree("X", root, false);
            node = new BTree("Y", root, false);
            node = new BTree("Z", root, false);

            this.richTextBox1.Text += "\n";
            BTree.TraverseAscending(root);

            this.richTextBox1.Text += "\n";
            BTree.TraverseDescending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 9
0
        private void Button8_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.richTextBox1.Clear();

            BTree node         = null;
            BTree nodeToDelete = null;
            BTree root         = null;

            Button3_Click(sender, e);

            nodeToDelete = new BTree("C", null);
            BTree.DeleteNode(nodeToDelete, root);

            BTree.TraverseAscending(node);

            nodeToDelete = new BTree("I", null);
            BTree.DeleteNode(nodeToDelete, root);

            BTree.TraverseAscending(node);

            nodeToDelete = new BTree("A", null);
            BTree.DeleteNode(nodeToDelete, root);

            BTree.TraverseAscending(node);

            this.richTextBox1.Text += "\n";
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 10
0
        private void Button5_Click(object sender, EventArgs e)
        {
            // Exercise #2
            // prime the tree for numbers between 1 and 51
            // with 7 optimally distributed data points setting isData = false
            // then insert 30 random numbers between 1 and 51

            this.richTextBox1.Clear();

            BTree node = null;
            BTree root = null;

            node = new BTree(26, root, false);
            node = new BTree(19, root, false);
            node = new BTree(13, root, false);
            node = new BTree(7, root, false);
            node = new BTree(32, root, false);
            node = new BTree(38, root, false);
            node = new BTree(45, root, false);



            Random random = new Random();

            for (int i = 0; i < 30; ++i)
            {
                node = new BTree(random.Next(1, 52), root, false);

                if (i == 0)
                {
                    root = node;
                }
            }

            this.richTextBox1.Text += "\n";
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 11
0
        private void Exercise7__Click(object sender, EventArgs e)
        {
            // Exercise #7
            // given the age range of people in Exercise #6,
            // prime the tree with nodes containing Person objects (set isData = false for the seed nodes)
            // containing the optimal ages to balance the tree
            this.richTextBox.Clear();

            BTree node = null;
            BTree root = null;

            // the Person class is defined below
            Person person = null;

            // Your code here


            this.richTextBox.Text += "\n";
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 12
0
        private void Button7_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.richTextBox1.Clear();

            BTree node = null;
            BTree root = null;

            Button3_Click(sender, e);

            Button4_Click(sender, e);

            //or you could brute force it and copy all of the node = new BTree-s but I dont think anyone wants that.

            this.richTextBox1.Text += "\n";
            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 13
0
        private void Exercise3__Click(object sender, EventArgs e)
        {
            // Exercise #3
            // insert 15 random uppercase strings

            BTree  root = null;
            BTree  node;
            Random random = new Random();

            this.richTextBox.Clear();

            // Your code here
            string[] chars = new string[26] {
                "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K",
                "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
            };

            for (int i = 0; i < 15; ++i)
            {
                int    num      = random.Next(1, 26);
                string randChar = chars[num];

                //insert random strings
                node = new BTree(randChar, root);
                if (i == 0)
                {
                    root = node;
                }
            }

            this.richTextBox.Text += "\n";

            BTree.TraverseAscending(root);

            VisualizeBinaryTree visualizeBinaryTree = new VisualizeBinaryTree(root);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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);
        }