[infostudents] info Aufgabe2

  • From: Ox4655@xxxxxxxxxxx (User Sin)
  • To: infostudents@xxxxxxxxxxxxx
  • Date: Fri, 29 Jun 2007 20:27:48 +0200

es ist noch ziemlich roh was ich hier abgebe, aber im kern duefte es stimmen. falls doch fehler vorhanden sein sollte, waere ich dankbar fuer jede anregung.


mfg

Ivo Malenica
public class ChildSiblingNode {
        int key;
        ChildSiblingNode parent;
        ChildSiblingNode child;
        ChildSiblingNode left;
        ChildSiblingNode right;
        
        /**
         * Erzeugt einen neuen Knoten mit gegebenem Schlüssel.
         * 
         * @param key der Schlüsselwert
         */
        public ChildSiblingNode(int key) {
                this.key=key;
                parent=null;
                child=null;
                left=this;
                right=this;
        }
        
        /**
         * Fügt diesem Knoten einen neuen Knoten mit gegebenem Schlüssel 
         * als neuen Sohn hinzu. Der enue Knoten wird zurückgegeben.
         *  
         * @param key der Schlüssel des neuen Knotens
         */
        public ChildSiblingNode addChild(int key) {
                ChildSiblingNode newchild = new ChildSiblingNode(key);
                if (this.child==null){
                        newchild.parent=this;
                        this.child=newchild;
                        newchild.left = newchild.right = newchild;
                }
                else {
                        newchild.parent=this;
                        newchild.left=child.left;
                        newchild.right=child;
                        child.left.right=newchild;
                        child.left=newchild;
                }
                return newchild;
        }
        

        /**
         * Trennt diesen Knoten (samt all seinen Nachkommen) vom Vater 
         * und aus der Liste seiner Geschwister ab.
         */
        public void cut() {
                this.left.right=this.right;
                this.right.left=this.left;
                
                if (this.parent.child==this)
                        this.parent.child=this.right;
                if(this.right==this)
                        this.parent.child=null;
        }
}

Other related posts:

  • » [infostudents] info Aufgabe2