Results 1 to 2 of 2
  1. #1
    Join Date
    Sep 2003
    Posts
    3

    Unanswered: Need help for an applet of an binärtree

    Hello
    i have a problem:
    i search a way to show my binärtree as an applet, but i have no idea how to make, has anyone an idea howw to make???
    and another question:
    this tree is only for int´s, but i search a way to make it compatible with objekts, anyone can help me with this?



    import java.io.*;

    public class Binärbaum
    {
    protected String Knoten;
    protected int index = 0;
    protected int w;
    protected int Wert;
    Binärbaum vater, links, rechts;


    /************************Konstruktor für den Binärbaum, der einen Eingegebenen Wert erwartet***********************/
    Binärbaum(int w)
    {
    Wert = w;
    vater = null;
    links = null;
    rechts = null;
    index++;
    hinzufuegen(w);

    }


    /*
    public String toString()
    {
    String s = (NamedesKnotens+" :"+Knoten);
    return s;
    }
    */
    /************************Eingabe der hinzuzufügenden einzelnen Werte*******************************/
    public int eingabe()
    {

    System.out.print("Eingabe des Wertes: ");
    try
    {
    BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
    Knoten = buffer.readLine();
    w = Integer.parseInt(Knoten);
    hinzufuegen(w); //Startet den Vorgang hinzufügen mit dem Eingegebenen Wert
    }
    catch (IOException ioe)
    {
    System.out.print("Fehler: " + ioe);
    System.exit(1);
    }
    return w;

    }
    /********************************Hinzufuegen des eingegebenen Wertes zum Binärbaum*******************************/
    public void hinzufuegen(int w)
    {

    if (w != Wert)
    {
    if (w < Wert)
    {
    if (links == null) //Ist der linke Sohn frei?
    {
    links = new Binärbaum(w);
    links.vater = this;
    index++;
    System.out.println(w + " links von :" + Wert + " eingehangen"); //Ausgabe wo der Wert angehängt wird
    }// Ende if (links == null)
    else links.hinzufuegen(w); //nicht frei, dann starte funktion hinzufuegen am nächsten Knoten neu

    }// Ende if (w < Wert)
    else
    {
    if (rechts == null) // Ist der rechte Sohn frei?
    {
    rechts = new Binärbaum(w);
    rechts.vater = this;
    index++;
    System.out.println(w + " rechts von :" + Wert + " eingehangen"); //Ausgabe wo der Wert angehängt wird
    }// Ende if (rechts == null)
    else rechts.hinzufuegen(w); //nicht frei, dann starte funktion hinzufuegen am nächsten Knoten neu
    }//Ende Else (w < Wert)
    }// Ende (w != Wert)


    }
    /*******************************Suchfunktion für einen angegebenen Wert ******************************/
    public void search(int Gesucht)
    {
    if (Gesucht == Wert){
    System.out.println("Der von ihnen gesuchte Wert("+Gesucht+") ist vorhanden");
    }
    else
    {
    if (links != null && Gesucht < Wert)
    {
    links.search(Gesucht);
    }
    else
    {
    if (rechts != null && Gesucht > Wert)
    {
    rechts.search(Gesucht);
    }
    else
    {
    System.out.println("Der von ihnen gesuchte Wert("+Gesucht+") ist nicht vorhanden");
    }
    }
    }
    }
    / **********************************************Ausg
    abe des gesamten Baums**************************/
    public void ausgabe()
    {
    if(links != null )
    {
    System.out.println(links.Wert+" ist ein linker Wert von: "+links.vater.Wert);
    links.ausgabe();
    }

    if(rechts != null)
    {
    System.out.println(rechts.Wert+" ist ein rechter Wert von: "+rechts.vater.Wert);
    rechts.ausgabe();
    }

    }
    /*************************************Löschen eines eingegebenen Wertes********************************************
    /
    public void löschen(int w)
    {
    {
    if (w == this.Wert)
    {
    if ( this.links == null && this.rechts == null)
    {
    if ( this.vater.links == this)
    {
    this.vater.links = null;
    System.out.println(w + " Gelöscht!");
    }
    if ( this.vater.rechts == this)
    {
    this.vater.rechts = null;
    System.out.println(w + " Gelöscht!");
    }
    }
    else
    {
    if (this.links != null && this.rechts == null)
    {
    this.links.vater = this.vater;
    if ( this.vater.links == this)
    {
    this.vater.links = this.links;
    System.out.println(w + " Gelöscht!");

    }
    if ( this.vater.rechts == this)
    {
    this.vater.rechts = this.links;
    System.out.println(w + " Gelöscht!");
    }
    }
    else
    {
    if (this.rechts != null && this.links == null)
    {
    this.rechts.vater = this.vater;
    if ( this.vater.links == this)
    {
    this.vater.links = this.rechts;
    System.out.println(w + " Gelöscht!");

    }
    if ( this.vater.rechts == this)
    {
    this.vater.rechts = this.rechts;
    System.out.println(w + " Gelöscht!");
    }
    }
    else
    {
    if (this.rechts.links == null)
    {
    this.links.vater = this.rechts;
    this.rechts.vater = this.vater;
    if ( this.vater.links == this)
    {
    this.vater.links = this.rechts;
    System.out.println(w + " Gelöscht!");

    }
    if ( this.vater.rechts == this)
    {
    this.vater.rechts = this.rechts;
    System.out.println(w + " Gelöscht!");
    }

    }
    else
    {
    this.Wert = this.rechts.getlastleftwert();
    }

    }
    }


    }
    }
    else
    {
    if (w < this.Wert)
    {
    if (this.links != null)
    {
    this.links.löschen(w);
    }
    else
    {
    System.out.println(w + " ist nicht vorhanden");
    }
    }
    if (w > this.Wert)
    {
    if (this.rechts != null)
    {
    this.rechts.löschen(w);
    }
    else
    {
    System.out.println(w + " ist nicht vorhanden");
    }
    }
    }

    return;

    }
    }
    private int getlastleftwert()
    {


    int Hilf;
    if(this.links != null)
    {
    return this.links.getlastleftwert();
    }
    else
    {
    this.vater.links = null;
    return this.Wert;
    }


    }
    }

    this code generate the tree

    public class Binärausführen {

    public static void main(String[] args) {

    Binärbaum aloha = new Binärbaum(12);
    aloha.eingabe();
    aloha.eingabe();
    aloha.eingabe();
    aloha.eingabe();
    aloha.eingabe();
    aloha.eingabe();
    aloha.eingabe();

  2. #2
    Join Date
    Aug 2009
    Posts
    68
    Hi !
    I'm not sure I understand fully your problem, but you should consider using an AbstractTreeModel and a JTree (javax.Swing).
    The first class implements the tree data model (more or less, the class you already wrote) and the second one is the displayable tree you can add to some Container in that way:
    DefaultTreeModel trMod = new DefaultTreeModel();
    // here you can replace it by any custom class inherited from AbstractTreeModel
    JTree tr = new JTree(trMod);
    tr.setRootVisible(true);

    JScrollPane trW = new JScrollPane(tr); // displays the tree in a scroll panel (often useful)
    SomeContainer.add(trW); // add the thing to some Container, maybe the applet itself
    Hope this helps...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •