Zum Inhalt springen

Binärbaum grafisch darstellen?


Amberstar

Empfohlene Beiträge

Hallo

und zwar habe ich folgende Klassen programmiert um einen Binärbaum zu erhalten:

Nun suche ich eine möglichkeit die es mir ermöglicht ihn als applet(oder irgendwie anders grafisch) darzustellen, hat jemand einen rat für mich??????????

und eine andere Frage die ich mir stelle ist es wie ich aus diesem Baum einen Binärbaum für Objekte mache, denn im Moment ist er ja nur für int zu gebrauchen? hat da jemand eine idee?

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");

}

}

}

}

/**********************************************Ausgabe 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;

}

}

}

Generiert wird er durch folgendes:

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();

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...