binary tree

drpingoo

Erfahrenes Mitglied
Hallo zusammen,

hab mal so an einem binarytree-code rumgebastelt, weiss aber nicht, ob das alles stimmt. Zumindest dieses "null" stimmt nicht... Was ist denn bei Java das Pendant zu "NULL" bei C++? Wie siehts mit dem Rest aus, den ich geschrieben habe? Ist noch nicht fertig, bin noch dran, z.b. wenn es gar keine Tochterbäume mehr gibt.

Lg
drpingoo
 
Hoppla, Code vergessen, hier noch nachträglich:

PHP:
package sort;

/**
 * Informatik II - SS2007 <br>
 * Uebungsserie 2, Aufgabe 3 <br>
 * Template for class ConvertTree.java <br>
 *
 * @author Silvia Santini
 */
public class ConvertTree {

    char[] tree; //tree is a reference to an rray of char

    /**
     * Constructor
     **/
    ConvertTree(char[] a) {
      tree = a;
    }

    // param i: position in array
    // param j: current indention-level
    void indent( int i, int j ) {

      /*  if(i==null)
        	{
        	return;
        	//break condition...) return;
        	}
        */
        if(i != null && 2*i != null)
        	indent( 2*i ,j+1);
        if(i != null && 2*i == null && 2*i+1 != null)
        	indent( 2*i+1 ,j+1);
        
        
        // Print a space for each new tree-level
        for( int n=0; n<j; n++ ) {
            System.out.print( " " );
        }

        System.out.println(tree[i]);

        //recursive calls
       /* indent( 2*i ,j+1);
        ......*/
    }

    /**
     * Give the programm the tree's array-representation as a
     * single string argument.
     * If your representation includes space characters,
     * then include quotes.
     * Example:
     *
     * java CovertTree $"123  67"$
     *
     * Test the programm with the following inputs (a missing node
     * is represented by a space character):
     *
     * "1234567"
     * "1 3  67"
     * "AB D   H       P"
     * "A C   G       O"
     **/
     public static void main( String args[] ) {

        if( args.length == 0 ||  args.length > 1 ) {
            System.out.println( "Invalid input" );
            System.exit( 1 );
        }

        // Prefix the input-string with a space character, so that
        // the effective tree starts at index 1
        String input = " " + args[0];

        //the method toCharArray converts a string in an array of
        //characters
        ConvertTree ct = new ConvertTree(input.toCharArray());

        // ct is an instance of the CovertTree class
        // which is initialised with the given array
        // representation
        ct.indent(1,0);
    }
 }
 
Hi,

soweit meine bescheidenen C++-Kenntnisse das zulassen, weiß ich das sich
"NULL" dort auf mehr Datentypen anwenden lässt !

In Java ist null auf Objekt-Referenzen beschränkt, funktioniert also nicht mit nativen wie int !

Gruß JAdix
 
hab mal so an einem binarytree-code rumgebastelt, weiss aber nicht, ob das alles stimmt. Zumindest dieses "null" stimmt nicht... Was ist denn bei Java das Pendant zu "NULL" bei C++? Wie siehts mit dem Rest aus, den ich geschrieben habe? Ist noch nicht fertig, bin noch dran, z.b. wenn es gar keine Tochterbäume mehr gibt.

Wie bei C++ gibt es auch bei Java die Variable "null". Null kann zum beispiel eine nicht initialisierte Variable sein.
Code:
   String   name;
   Objekt  person;

Beide geben bei einer Inhaltsabfrage null zurück!
Ist eine Datei auf dem System nicht vorhanden wird ebenfalls null zurückgeliefert. Spricht man einen Array an mit einem falschen Index an, gibt es zu der Out of Bounds Exaption den null Wert zurück. Es gibt noch viele weitere Möglichkeiten null zu erzeugen.

Null kann auch sehr nützlich sein, wie du gesehen hast. Damit lassen sich Ereignisse überprüfen. Bei einem Binärbaum kannst du überprüfen ob ein Sohn vorhanden ist.
 
Zuletzt bearbeitet:
Hallo,

Wie bei C++ gibt es auch bei Java die Variable "null". Null kann zum beispiel eine nicht initialisierte Variable sein.
null ist ein Wert der nur Variablen eines referenztyps zugewiesen werden kann - null ist keine Variable!. Die Zuweisung von null an primitive Typen ist nicht erlaubt...

Gruß Tom
 
Ok, was würdet ihr dann anstattdessen vorschlagen, denn ich möchte, wie Stigma schon antönt, überprüfen, ob das Array leer ist oder nicht, mit 0 oder ' ' geht das ja wohl kaum, oder?

lg
drpingoo
 
Ok, was würdet ihr dann anstattdessen vorschlagen, denn ich möchte, wie Stigma schon antönt, antönt, antönt ?,

Was zum teufel ist antönt?:confused: Wenn ich antönt bei Google eingebe sagt dieser Eventuell haben sie das Wort falsch geschrieben!:eek: Meinen Sie vielleicht antörnt Das weis ich doch nicht!:rolleyes: Ich klicke drauf und was lese ich da: Was Männer wirklich antörnt :mad:
 
Ich möchte es eigntl nicht zuweisen, sondern viel mehr vergleichen.

@Stigma

Ich hab das überhaupt nicht so gemeint, wie du das jetzt auffasst, dieser Ausdruck gibts bei euch drüben in Deutschland vllt nicht (aus der Schweiz^^). Es hat also absolut nichts mit Anmache oder so was zu tun. Antönt heisst so viel wie anschneiden (Thema anschneiden).
Hoffe, du bist mir nicht mehr böse....:(

lg
 
Hi,

wenn ich deinen Code richtig verstehe, der sich ja noch nicht auf den Inhalt des Arrays
bezieht, suchst du nach etwas wie z.B. :


Code:
     if(tree[i]=' ')   {    return;    };

Als Abbruchbedingung für den leeren Baum ! Da ein Space-Character ja einen leeren Node
darstellt !

Gruß JAdix
 
Zurück