Klasse für Baumstrukturen

AquaBall

Top Contributor
Ich lese nun seit 2 Wochen im Net und Foren, weil ich meine Daten baum-mäßig organisieren muss.

Ist es richtig, dass es für allgemeine Bäume keine Standard-Classen in Java gibt!?!

Array/Set/Hash ist ja grundlegen falsch, und alles was ich über Trees/TreeSet finde, bezieht sich immer auf Binärbaum mit Sortierung. (kann ich aber nicht brauchen.)

Muss ich einen normale Baumstruktur wirklich komplett manuell ausprogrammieren?
Und wenn ja, wie mach ich dann eine Kopie des Baums?
Da macht mir die Rekursion große Probleme.
(Ich kann zwar in einem bestehenden Baum leicht 'rumklettern', weiß dann aber nicht, wo "dieselbe" Stelle im neuen Baum ist.)
 

XHelp

Top Contributor
In Swing gibt es TreeModel und TreeNode, es könnte ggf unter Umständen evtl legitim sein die zu verwenden.
Aber eine Baumstruktur selber zu schreiben ist eigentlich nicht die Welt. Dein Einwand mit der Rekursion habe ich nicht so ganz verstanden.
 

AquaBall

Top Contributor
@pro2 Danke, soweit bin ich schon. aber es sind doch sehr viele Details zusätzlich händisch zu behandeln.

@XHelp Swing/JPanel kann ich nicht benutzen, weil ich für Android entwickle, und da bin ich sehr eingeschränkt in der Auswahl.


Zur Zeit kämpfe ich mit einem - zwar lauffähigem, aber etwas wackeligem - Baum, und habe div. Schwierigkeiten.

Wenn ich einen Ast umhänge an eine neue Stelle, ist er dort zwar nach oben und unten richtig einsortiert, kann es aber passieren, dass an der alten Stelle eine "loses Ende" offen bleibt.

Ich hab keine Sicherheit, dass ein Knoten nur von EINEM Ast angesprochen wird. Es ist denkbar (wenn auch nicht zulässig), dass mehrere Äste auf denselben Knoten zeigen.

Rekursion beim Kopieren eines Baums: Ich kann zwar die Struktur schön aufrufen
Java:
// in myBaum 
public void kopieren(myBaum neuer) {
    neuer.daten = this.daten;
    for (myBaum next : this.nachFolger) {
        next.kopieren(liste);
    }
}
Aber
  1. dadurch erzeuge ich ja erst wieder nur einen (nichtzulässigen) Verweis auf das selbe Object,
  2. und außerdem weiß mein 2. Aufruf schon nichtmehr, wohin er die Nachfolger dranhängen soll.
Ich würde irgendetwas brauchen wie eine zw. 2 Bäumen "synchronisierte Rekursion".


Aber ich seh schon, dass ich es wirklich selbst ausprogrammieren muss.
 

XHelp

Top Contributor
Naja, an den 3 Zeilen lässt sich nur Bedingt Sinn/Fehler erkennen. Sieht aber etwas komisch aus: eine void-kopier Methode, mit irgendeiner
Code:
liste
und die Nachfolger von
Code:
neuer
werden gar nicht gesetzt.
Aber ich vermute mal Stark, dass sich fertige und erprobte Strukturen wie Baum in paar Sekunden ergoogeln lassen.
 

AquaBall

Top Contributor
Logisch. geb dir schon recht, dass mein (Pseude)Code-Schnipsel-Getippse keinen Anspruch auf Richtigkeit erhebt.

Aber weil ich eben noch nicht weiß, wie's richtig wäre, kann ich ja keinen funktionierenden Code anbieten. (Sonst hätt ich kein Frage mehr.)

Aber ich werd's schon hinkriegen.

PS: Googeln? Die Adresse Google.com ist bei mir schon ganz abgenützt. Auch in vielen Stunden findet man da gar nichts. (Sollte das an meinem ISDN-Modem liegen? :D)
 

AquaBall

Top Contributor
Danke, ist sehr nett gemeint.
Aber so eine Seite schau ich mir im allgemeinen gar nicht genauer an.
(Nach deiner Empfehlung werd ich es in diesem Fall natürlich DOCH machen!)

Aber wenn eine Seite nur reiner Code ist,
ohne auch nur 1 Textzeile dazu,
ohne einen einzigen Kommentar im SorceCode
ohne irgend ein Information um was es geht
dann ist das nur unnötiger Ballast. Ich kann nicht jeden Text in Eclipse kopieren. Projekt anlegen, anpassen, testen, ... Stunden verbraten.
Der schiere Text "Added parent property to Generic Tree Node. Change find and exists to…" ist mir einfach nicht verlockend genug, dass ich aus 213.000.000 Google-Ergebnissen (nach Java Tree) genau daran hängen bleiben würde.

Im Gegenteil: solche Seiten klick ich gar nicht an, wenns auf ersten Blick den Anschein macht es würde nur um Dateidonload gehen.

Das ist keine Kritik an deiner Hilfe, sondern nur Ärger wie nutzlos der Müll im Internet manchmal ist (wenn man kein tolles Forum hat. ;-))

Aber ich werd mich schon durchkämpfen.
Vielen Dank
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
L Neue Klasse für TableView? Java Basics - Anfänger-Themen 17
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
temi Was ist denn set für ne schwachsinnige Klasse? Java Basics - Anfänger-Themen 12
3 ArrayList Integer Wrapper Klasse als Ersatz für normale Arrays Java Basics - Anfänger-Themen 10
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
D Klassen Eigene Klasse für ArrayList Java Basics - Anfänger-Themen 6
T Klasse für Google-Abfrage Java Basics - Anfänger-Themen 9
J Eigene Klasse für die Variablen? Java Basics - Anfänger-Themen 3
K Eigenschaften Definieren für Produkte in einer Klasse Java Basics - Anfänger-Themen 6
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
S Klassen Brauche Hilfe bei Erstellung einer Klasse für einen Tachenrechner!!! Java Basics - Anfänger-Themen 6
D Loop Funktion für Robot Klasse Java Basics - Anfänger-Themen 5
U Interface für abgeleitete Klasse Java Basics - Anfänger-Themen 5
S OOP Foreach für Objekte einer Klasse? Java Basics - Anfänger-Themen 3
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
K Klasse für andere Klassen sichtbar machen Java Basics - Anfänger-Themen 6
F Eigene Klasse für die Keys von HashMap Java Basics - Anfänger-Themen 5
T Konstruktor für eigene Klasse erstellen Java Basics - Anfänger-Themen 6
G Eigene Klasse für externe Befehle - Warten auf Prozesse Java Basics - Anfänger-Themen 6
T Klasse in Java für doppelt verkettete Listen Java Basics - Anfänger-Themen 4
P Uhrzeit für die Klasse Minute umwandeln. Java Basics - Anfänger-Themen 3
H Klasse für einen JLabel-artigen Button Java Basics - Anfänger-Themen 5
F Eigene Klasse für Events Java Basics - Anfänger-Themen 10
E klasse für ein Rechteck schreiben Java Basics - Anfänger-Themen 25
T Methoden für GUI in eine andere Klasse Java Basics - Anfänger-Themen 2
L eigene Klasse für DB Java Basics - Anfänger-Themen 5
B Pfad für eine externe Klasse Java Basics - Anfänger-Themen 4
T mehrere Konstruktoren für eine Klasse Java Basics - Anfänger-Themen 7
S Variabler Name für ein Objekt einer Klasse? Java Basics - Anfänger-Themen 10
I @Inject in normaler Klasse? Java Basics - Anfänger-Themen 4
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Detlef Bosau nichtstatische Innere Klasse, this Pointer. Java Basics - Anfänger-Themen 47
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Optional Klasse Java Java Basics - Anfänger-Themen 2
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Klassen Typ und Intitialisierungs-Klasse, wer bestimmt was? Java Basics - Anfänger-Themen 1
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
frager2345 Java Klasse Buch verwalten Java Basics - Anfänger-Themen 0
frager2345 Java eigen Klasse zum verwalten von Büchern Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
C Int an andere Klasse übergeben Java Basics - Anfänger-Themen 26
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
B Klasse "Character" Java Basics - Anfänger-Themen 2
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
I Array Länge in Klasse festlegen Java Basics - Anfänger-Themen 1
L Klassen Vektor Klasse Java Basics - Anfänger-Themen 2
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
W Klasse existiert prüfen Java Basics - Anfänger-Themen 5
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
T Auf Instanz der selben Klasse aus überschriebener Methode in Methode zugreifen. Java Basics - Anfänger-Themen 2
M Scanner Klasse Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
CptK Vererbung Attributtyp in Super-Klasse noch nicht festlegen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben