Datenbaum :jedes Element durchgehen ?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

sbrog

Betreff: Datenbaum :jedes Element durchgehen ?

BeitragMi, Aug 10, 2005 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo. Wie stelle ich es am besten an, jedes Element eines Baumes durchzugehen ,um es z.B zu zeichnen ?

Lord_Vader

BeitragMi, Aug 10, 2005 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit Types in Types würde ich sagen.
Problem ist nur das die types in den types allgemein gelten und nicht nur für den jeweiligen eintrag, was zur folge hat das du jedem ast eine ID geben musst die zu jedem stamm passt was sehr langwierig ist.

Hatte so meine probleme damit (zB wutausbrüche)

sbrog

BeitragMi, Aug 10, 2005 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

ich kann mit deiner Antwort ziemlich wenig anfangen. Crying or Very sad
Gibt es da irgendeinen Standard-Algorithmus dafür ?
 

Dreamora

BeitragMi, Aug 10, 2005 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei einem Baum gibts 3 Möglichkeiten:

In-Order, Pre-Order oder Post-Order

Also in dem man rekursiv
linkes Kind, Wurzel, rechtes Kind
Wurzel, linkes Kind, rechtes Kind
linkes Kind, rechtes Kind, Wurzel

durch geht ab der Wurzel (in diesem Falle ma nur für nen Binärbaum, da er der normalste Fall ist)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

sbrog

BeitragMi, Aug 10, 2005 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist leider kein Binärbaum.

Ich habe einen Baum, der aus Objekten besteht, die keinerlei Hierarchischer Ordung unterstehen. D.h es gibt keine Wurzel, und auch keine Krone. Jedes Objekt hat beliebig viele Child- und Parent-Objekte
 

Dreamora

BeitragMi, Aug 10, 2005 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ein B Baum
Auch dann kannst du immer noch Pre und Post Order nutzen, denn die Baumebenen müssen ja irgendwie gehandhabt werden, das man durch gehen kann.

Wenn nicht, dann isses auch kein Baum und du musst dir überlegen wie er aufgebaut ist um ihn "abzurollen" bzw. dich mit B Bäumen beschäftigen um eine effiziente Baumversion zu haben.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

sbrog

BeitragMi, Aug 10, 2005 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mal ein Bild gezeichnet


user posted image


Ist das so ein B Baum ? Oder gar kein Baum ?
  • Zuletzt bearbeitet von sbrog am Mi, Aug 10, 2005 21:34, insgesamt einmal bearbeitet
 

Dreamora

BeitragMi, Aug 10, 2005 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist kein Baum sondern ein Graph
Da gibts kein direktes durchgehen. Wirst dir wohl einen Spanning Tree erzeugen müssen oder die chaotische Datenstruktur aufräumen müssen, damit du sie "durchgehen kannst"
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

sbrog

BeitragMi, Aug 10, 2005 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, ich dachte, Graph und Baum wären dasselbe.

Wäre es eine möglichkeit, Bei einem Objekt zu beginnen, und von dort ausgehend, jedes Child und Parentobjekt zu registrieren, bis man keine mehr findet ?
 

Dreamora

BeitragMi, Aug 10, 2005 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja aber die Variante werd extrem ineffizient, wenn du das immer wieder machen musst.

Da wirds einfacher, wenn du von anfang an einen Spanning Tree mitführst, der beim hinzufügen eines Elementes automatisch erweitert wird. Danach musst du nur noch den Spanning Tree durchgehen ... und dessen Grösse beträgt bei einem Graphen nur Bruchteile des Graphen selbst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Xaron

BeitragDo, Aug 11, 2005 8:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora, ist ja nett gemeint, aber wer einen Graphen nicht von einem Baum unterscheiden kann, wird auch nicht wissen, was ein Spanning Tree ist. Wink

Ist übrigens keine Schande, nicht zu wissen, was ein Graph ist, das möchte ich noch klar dazu sagen! Das obige soll nicht angreifend wirken. Wink

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

Jan_

Ehemaliger Admin

BeitragDo, Aug 11, 2005 8:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, da ich auch nciht weiß, was eni Baum oder eine Graph ist, frage ich mal was zu der Graph, hat sie einen Anfang oder?
between angels and insects

Alfadur

BeitragDo, Aug 11, 2005 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ha, und mich bringt das wieder auf meine idee von vor nem halben jahr zurück, einen bereich oder topic einzurichten wo man die "more sophisticated" programmiertechniken und algorithmen und ihren nutzen erklärt...
A Cray is the only computer that runs an endless loop in less than four hours.
 

Dreamora

BeitragDo, Aug 11, 2005 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Glücklicherweise sind wir im Jahr 2005 wo es Google gibt. Wenn man Spanning Tree eingibt wird man eine einfache Erklärung dafür erhalten Smile

Das jemand der sich nicht damit befasst, den Unterschied nicht wissen kann, ist mir klar. Nur dann sollte man auch keine Namen verwenden die eindeutig bestimmt sind.

Das charakteristische an einem Baum ist genau 1 Wurzel sowie die Äste die sie mit ihren Kindern verbinden (In Richtung Wurzel - Kinder). Der Rest baut dann rekursiv auf diesem auf, indem man jedes Kind selbst als Wurzel des entsprechenden Unterbaumes ansieht.

In obigem Falle sind beide Bedingungen verletzt.

Wenn man sich damit beschäftigen möchte, so gibt es unzählige Seiten im Netz die es einem erlauben, es zu erlernen, wenn man kein Buch kaufen möchte (was ich eigentlich in diesem grundlegenden Falle eher empfehlen würde)

Hier ist ein sehr guter Link, der ziemlich viel vom 1. Jahres Informatikingenieurstoff deckt: http://ciips.ee.uwa.edu.au/~mo...s_ToC.html

Es fehlt darin lediglich die dynamische Programmierung, die in vielen Büchern fehlt.

Für die sterbende Rasse der Englischverweigerer gibt es sonst folgende Linksammlung http://www.web-programmers.de/algo_bookmarks.html
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group