Beispiel #1
0
 private void btnInsert_Click(object sender, EventArgs e)
 {
     lblInfo.Text = "";
     if (intTree != null && (intTree.treeNodes.Count >= MAX_NODES ||
                             intTree.getMaxLevel() >= MAX_LEVELS))
     {
         lblInfo.Text = String.Format("No more than {0} nodes or {1} levels allowed",
                                      MAX_NODES.ToString(), MAX_LEVELS.ToString());
         return;
     }
     if (tbNode.Text != String.Empty)
     {
         int currentNode = 0;
         if (Int32.TryParse(tbNode.Text, out currentNode))
         {
             if (currentNode > MAX_NODE_VALUE || currentNode < 1)
             {
                 lblInfo.Text = "Allowed node values greater than 0 and less than " + MAX_NODE_VALUE.ToString();
             }
             else
             {
                 try
                 {
                     intTree.Insert(currentNode);
                     highlightedNode = currentNode;
                     pbTree.Refresh();
                     lblInfo.Text = "";
                     //drawTree(intTree, currentNode);
                 }
                 catch (DuplicateItemException die)
                 {
                     highlightedNode = 0;
                     //MessageBox.Show("Item exists " + currentNode);
                     lblInfo.Text      = "Item exists " + currentNode;
                     lblInfo.ForeColor = Color.Red;
                 }
                 catch (NullReferenceException nre)
                 {
                     intTree = new BinarySearchTree_ <int>();
                     intTree.Insert(currentNode);
                     highlightedNode = currentNode;
                     //drawTree(intTree,node);
                     pbTree.Refresh();
                 }
             }
         }
     }
 }
Beispiel #2
0
        private void btnNewTree_Click(object sender, EventArgs e)
        {
            // Asks the user for the desired number of nodes in the tree
            // and then generates the tree using random numbers
            totalTreeNodes = 0;
            NodesNumber n = new NodesNumber();

            n.ShowDialog();
            if (totalTreeNodes < 1 || totalTreeNodes > MAX_NODES)
            {
                return;
            }
            intTree = new BinarySearchTree_ <int>();
            Random r = new Random(DateTime.Now.Millisecond);

            for (int i = 0; i < totalTreeNodes; i++)
            {
                bool itemCreated = false;
                while (!itemCreated)
                {
                    try
                    {
                        int randomInt = r.Next(1, MAX_NODE_VALUE);
                        intTree.Insert(randomInt);
                        itemCreated = true;
                    }
                    catch (DuplicateItemException die)
                    {
                    }
                }
            }
            highlightedNode = 0;
            pbTree.Refresh();
            lblInfo.Text  = "";
            lblTrace.Text = "";
            //drawTree(intTree, 0);
        }