コード例 #1
0
ファイル: Form1.cs プロジェクト: ki-ARA-sh/ProtectionTest
 private void buttonMaximum_Click(object sender, EventArgs e)
 {
     try
     {
         TreeObject node = binarySearchTree.TREE_MAXIMUM(
             binarySearchTree.root);
         listBoxBinarySearchTree.SelectedItem = node;
     }
     catch (Exception e1)
     {
         MessageBox.Show(e1.Message);
     }
 }
コード例 #2
0
ファイル: Form1.cs プロジェクト: ki-ARA-sh/ProtectionTest
 private void buttonSearch_Click(object sender, EventArgs e)
 {
     try
     {
         TreeObject node = binarySearchTree.TREE_SEARCH(
             binarySearchTree.root, (int)numericUpDownBST.Value);
         listBoxBinarySearchTree.SelectedItem = node;
     }
     catch (Exception e1)
     {
         MessageBox.Show(e1.Message);
     }
 }
コード例 #3
0
ファイル: Form1.cs プロジェクト: ki-ARA-sh/ProtectionTest
 /////////// binary search tree functions
 private void buttonInsertBST_Click(object sender, EventArgs e)
 {
     try
     {
         TreeObject z = new TreeObject((int)numericUpDownBST.Value);
         binarySearchTree.TREE_INSERT(z);
         binarySearchTree.FillPrint();
         numericUpDownBST.Value = numericUpDownBST.Value + 1;
     }
     catch (Exception e1)
     {
         MessageBox.Show(e1.Message);
     }
 }
コード例 #4
0
        public TreeObject TREE_SUCCESSOR(TreeObject x)
        {
            if (x.right != null)
            {
                return(TREE_MINIMUM(x.right));
            }
            TreeObject y = x.parent;

            while ((y != null) && (x == y.right))
            {
                x = y;
                y = y.parent;
            }
            return(y);
        }
コード例 #5
0
 public TreeObject TREE_SEARCH(TreeObject x, int k)
 {
     if ((x == null) || (k == x.key))
     {
         return(x);
     }
     if (k < x.key)
     {
         return(TREE_SEARCH(x.left, k));
     }
     else
     {
         return(TREE_SEARCH(x.right, k));
     }
 }
コード例 #6
0
 public void TRANSPLANT(TreeObject u, TreeObject v)
 {
     if (u.parent == null)
     {
         root = v;
     }
     else if (u == u.parent.left)
     {
         u.parent.left = v;
     }
     else
     {
         u.parent.right = v;
     }
     if (v != null)
     {
         v.parent = u.parent;
     }
 }
コード例 #7
0
 public void INORDER_TREE_WALK(TreeObject x)
 {
     if (x != null)
     {
         if (order == BinarySearchTreeOrder.bstoPreordered)
         {
             Print(x);
         }
         INORDER_TREE_WALK(x.left);
         if (order == BinarySearchTreeOrder.bstoSorted)
         {
             Print(x);
         }
         INORDER_TREE_WALK(x.right);
         if (order == BinarySearchTreeOrder.bstoPostordered)
         {
             Print(x);
         }
     }
 }
コード例 #8
0
 public void TREE_DELETE(TreeObject z)
 {
     if (z.left == null)
     {
         TRANSPLANT(z, z.right);
     }
     else if (z.right == null)
     {
         TRANSPLANT(z, z.left);
     }
     else
     {
         TreeObject y = TREE_MINIMUM(z.right);
         if (y.parent != z)
         {
             TRANSPLANT(y, y.right);
             y.right        = z.right;
             y.right.parent = y;
         }
         TRANSPLANT(z, y);
         y.left        = z.left;
         y.left.parent = y;
     }
 }
コード例 #9
0
 public void Print(TreeObject aKey)
 {
     printArea.Items.Add(aKey);
 }
コード例 #10
0
 public ClassTree()
 {
     root = null;
 }