View Single Post
Old 04-05-2004, 12:43 PM   #1 (permalink)
feelgood
Free Mars!
 
feelgood's Avatar
 
Location: I dunno, there's white people around me saying "eh" all the time
[Java] BST Promoting Childs

Alright, I'm in the middle of my study on Binary Search Tree (BST) and right now I'm just developing the recrusive method in situations when 1 parent has been removed and the parent has 1 or 2 child and I must promote one of them into the parent position right?

Now I hate asking this kind of question, especially to my professor but, did I get it right?

Code:
private BSTNode promote(BSTNode v_BSTN)
    {
        if(v_BSTN.isLeaf())
            return null;
        else
        {
            if(v_BSTN.hasLeftChild() && v_BSTN.hasRightChild())
            {
                BSTNode v_Temp;
                Comparable v_1 = (Comparable)v_BSTN.getLeftChild().getElement();
                
                if(v_1.compareTo(v_BSTN.getRightChild().getElement()) <= 1)
                {
                    v_BSTN.setElement(v_BSTN.getLeftChild().getElement());
                    v_BSTN.setLeftChild(promote(v_BSTN.getLeftChild()));
                }
                else
                {
                    v_BSTN.setElement(v_BSTN.getRightChild().getElement());
                    v_BSTN.setRightChild(promote(v_BSTN.getRightChild()));
                }
            }
            else if(v_BSTN.hasLeftChild() && !v_BSTN.hasRightChild())
            {
                v_BSTN.setElement(v_BSTN.getLeftChild().getElement());
                v_BSTN.setLeftChild(promote(v_BSTN.getLeftChild()));
            }
            else
            {
                v_BSTN.setElement(v_BSTN.getRightChild().getElement());
                v_BSTN.setRightChild(promote(v_BSTN.getRightChild()));
            }
            return v_BSTN;
        }
    }
__________________
Looking out the window, that's an act of war. Staring at my shoes, that's an act of war. Committing an act of war? Oh you better believe that's an act of war
feelgood is offline  
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73