Diskussion:Binärbaum

message: Ich kenen die Definition der Höhe eines binären Baums ein bisschen anders ...
leerer Baum: Höhe -1
Wurzel und sonst nix: Höhe 0
usw. d.h., die Höhe ist definiert als die maximale "Tiefe", gezählt ohne der Wurzel.
Somit sind natürlich die Formeln alle falsch ...!!!
Höhe 5 bedeutet nämlich 2^(5+1) - 1 Knoten = 63 und nicht 2^5 - 1 Knoten = 32
Also ist leider der Artikel hier falsch. (nicht signierter Beitrag von SternBogen (Diskussion | Beiträge) 12:18, 9. Jun. 2010 (CEST)
thread_title:  Höhe eines Trees 

message: Wow, mal langsam: Ein Binärbaum soll ein Out-Tree sein? Ein gerichteter Graph also? Doch wohl eher nicht! Vielmehr basiert die Definition doch auf einem ungerichteten Graphen (und kann bei Bedarf für Indexstrukturen in Datenbanken etc. auch gerichtet definiert werden). --Thetawave 15:48, 4. Aug 2005 (CEST)
thread_title:  Out-Tree etc. 

message: Das würde mich mal sehr interessieren. 
Wie man einen B-Tree linearisiert ist hier ja aufgeführt.
Ich könnte natürlich auch danach googlen, was ich jetzt auch machen werden, aber meine erste Anlafustelle für solche Infos ist mittlerweile nunmal Wikipedia.
Danke und Gruss
Fabian
*guckst du mal bei AVL-Baum Gruß--Falk 17:35, 4. Mai 2006 (CEST)
thread_title:  Wie erstellt man einen balancierter Binärbaum? 

message: "Es gibt einen Algorithmus, der entscheidet, ob zwei gegebene Permutationen einer Menge von Knoten pre- und post-order eines Binärbaums sind. Mit seiner Hilfe kann der zugehörige Binärbaum ggf. auch konstruiert werden."
Das hatte mich schon am Arikel Linearisierung von Binärbäumen gestört. Also wenn da jemand einen Algorithmus kennt, sollte der noch hinzugefügt werden, ansonsten ist mit der Information eigentlich niemandem geholfen.
Aus dem Stehgreif fiele mir jetzt nur eine Möglichkeit ein, eine Inorder-Traverse zu erkennen. Indem man sich die Liste oder Folge temporär merkt, sie sortiert und mit der temporär gemerkten vergleicht. Sind sie gleich, so ist es eine Inorder-Traverse und man kann sie dann auch leicht wieder EINEN(nicht unbedingt den ursprünglichen) korrekten Suchbaum erstellen (sofern es sich überhaupt um einen Suchbaum gehandelt hat, ansonsten wäre es aus meiner Sicht garnicht möglich irgendetwas zu erkennen und zu rekonstruieren).
Für die Erkennung und "Rekonstruktion" von Post- und Präorder fällt mir jetzt aus dem Stehgreif nichts sinnvolles ein.
Hier mal die Variante für Inorder:
 Funktion ReconstInorder(Liste)
 	Baum <- NULL
 	If Liste.notEmpty AND Liste = Sort(Liste)
 		temp <- Liste.First
 		While temp.Next <> NIL
 			Baum.Insert(temp)
 			temp <- temp.Next
 	Return Baum
Ist die übergebene Liste leer oder handelt es sich um keine korrekte Inorder-Traverse eines Suchbaums, so wird NULL zurückgegeben. Ansonten wird irgendein(!!!) Suchbaum zurückgegeben, der - würde man ihn mit Inorder linearisieren - wieder genau die selbe Liste ergeben würde. 
Aber umso mehr ich drüber nachdenke, umso trivialer erscheint mir das ;) Gruß--Falk 21:24, 11. Mai 2006 (CEST)
thread_title:  Was soll eigentlch das hier? 

message: Für mich sind die Codebeispiele etwas schwer verständlich, vorallem der Pseudocode (oder ist das ne reale Sprache). Ich fänds besser wenn die in z.B. C implementiert wären. 134.106.11.158 16:28, 29. Jun 2006 (CEST)
replies: text: Was heißt “wirr”? Der einzige Unterschied ist halt, dass die Linearisierung zurückgegeben und nicht direkt ausgegeben wird. Das Prinzip der Verkettung sollte eigentlich über String-Verkettungen oder z. B. ((List)foo).add(bar) aus den gängigen Programmiersprachen bekannt sein. Aber von mir aus kann man’s auch über die direkte Ausgabe machen. --Falk  Sprichzumir… 00:41, 29. Mai 2009 (CEST)

text: So, hab’s mal ohne die Verkettung formuliert …--Falk  Sprichzumir … 22:35, 29. Mai 2009 (CEST)
thread_title:  Code-Beispiele preoder etc. schlecht lesbar 

message: Ich habe die Seite nunmehr gesperrt, ohne jedes Wissen in der Sache, jedoch bedenkend, das alle anderen Edits des Einstellers wegen Begriffsbildung gelöscht wurden. --Gerbil 10:38, 16. Jan. 2007 (CET)
thread_title:  Sperrung 

message: Die Darstellung der reellen Zahlen des Intervalls [0, 1] (s.u.) durch einen unendlichen binären Baum ist keine neue Begriffsbildung sondern eine bekannte Anwendung und ein legitimes Anwendungsbeispiel.
Der gesperrte Artikel ist übrigens fehlerhaft. In den Exponenten gehört nur das n gesperrt gedruckt, nicht die Zeichen und Zahlen. Soll das nun für alle Zeiten so gesperrt stehen bleiben, weil der ganze Artikel gesperrt ist?
:Ne,ne Du sollst Quellen nennen siehe WP:QA da muß sich niemand kundig machen.  --Mathemaduenn 19:06, 16. Jan. 2007 (CET)
replies: text: Es gibt sicher sehr viele denen der "unendliche binäre Baum" nichts sagt. Dann mußt Du eben Quellen liefern. Wenn ich sage das Jacobi Davidson Verfahren konvergiert quadratisch sollte ich vllt. auch eine Quelle liefern. Ansonsten hat sich dein Abschnitt imho wenig in den Artikel eingefügt. Ebene - Höhe, Pfade - Blätter, muß dein Baum nicht vollständig sein um eine Aussage über die Anzahl der Pfade zu machen? Die Ergänzung bzgl. transfiniter(naiver?) Mengenlehre verkomplizieren den Artikel imho nur ohne wirklichen Informationsgewinn zu bieten Grüße --Mathemaduenn 15:21, 18. Jan. 2007 (CET)
thread_title:  Bitte mach Dich kundig! 

message: Hallo allerseits, ich wundere mich, dass im ganzen Artikel das Wort "Traversierung" nicht vorkommt, das in der Informatik doch des öfteren verwendet wird.
:Beide Begriffe werden jetzt erläutert. --Der Ersteller Diskussion 09:49, 23. Feb. 2007 (CET)
replies: text: Hast recht. Ich meine eigentlich, dass das sogar mal so drinn stand, kann mich aber auch irren.--Falk 00:31, 28. Feb. 2007 (CET)
thread_title:  Traversierung? 

message: Ist es nicht so daß zwei beliebige aber verschiedene Linearisierungen eines Baumes, diesen eindeutig beschreiben? Wenn Ja könnte das ja mal jemand einbauen.
:Wenn ich so darüber nachdenke, könntest du recht haben. Allerdings wäre eine Quelle, oder ein Beweis von Nöten --Falk 00:19, 2. Apr. 2007 (CEST)
thread_title:  Linearisierung 

message: "Genauer gesagt handelt es sich um einen gewurzelten Baum, bei dem jeder Knoten höchstens zwei Kindknoten besitzt." -> Ein Knoten kann 0, 1 oder 2 Kinder haben.
"Ein Binärbaum ist entweder leer, oder er besteht aus einer Wurzel mit einem linken und rechten Teilbaum, die wiederum Binärbäume sind." -> Jeder Knoten muss entweder 0 oder genau zwei Kinder haben.
Diese Definitionen widersprechen sich. Falk 12:50, 10. Dez. 2007 (CET)
replies: text: Aus der englischen Version des Artikels geht hervor, dass die erstere Definition richtig ist. Ich habe die zweite dementsprechend erweitert. Falk 18:51, 11. Dez. 2007 (CET)
replies: text: Auch wenn es schon länger her ist: An sich sind beide Definitionen äquivalent: Hat ein Knoten einen linken, aber keinen rechten Kindknoten, dann ist der rechte Teilbaum gleich dem leeren Baum, der nach Def. auch ein Binärbaum ist... 80.141.127.143 23:52, 27. Apr. 2008 (CEST)
replies: text: Jein. Die Sätze sind nicht ganz äquivalent. Der erste lässt genau genommen offen, weilche Anzahlen an Kindern erlaubt sind. Es wird nur gesagt, dass es höchstens zwei Kinder sein dürfen, nicht aber, ob 0 Kinder, oder 1 Kind erlaubt sind. Daher widerspricht der zweite Satz dem ersten aber auch nicht, sondern konkretisiert ihn lediglich. So wie es da stand, war es also vollkommen richtig. Man möge es gerne probieren, aber mit dem zweiten Satz ist jede erdenkliche Konstruktion eines Binärbaumes möglich (mit dem ersten Satz auch, sofern man alles erlaubt, was dort nicht verboten wurde). Ich bin also dafür dass das wieder so hergestellt wird, wie es war. Jemand anderer Meinung?--(auch wenn die Unterschriften identisch aussehen, ich bin ein anderer Falk, als mein Vorvorredner ;))Falk 01:20, 28. Apr. 2008 (CEST)
replies: text: Da scheinbar keiner anderer Meinung ist, stelle ich den Satz jetzt wieder so her. --Falk 15:11, 29. Apr. 2008 (CEST)
thread_title:  Höchstens zwei Kinder oder genau zwei Kinder? 

message: Meiner Meinung nach lassen sich die genannten Eigenschaften des Baums nicht durch vollständige Induktion, sondern nur durch strukturelle Induktion zeigen, weil in den Beweise die rekursive Definition des Binärbaums und eben nicht die rekursive Definition der natürlichen Zahlen einfließt. Deswegen sollte der Verweis hinter "Induktiv" auf Strukturelle Induktion zeigen.
--Dr.Kemmer 16:20, 11. Dez. 2007 (CET)
thread_title:  Strukturelle und nicht Vollständige Induktion 

message: guten tag community!
es fehlt noch in der erklärung die ausgabe im level order und wie man die knoten eines niveaus ausgibt:
z.B.:
        A
     /     \ 
    B       C
  /   \       \
 D     E       G
dann wäre niveau 3: D E G
und level order:
A 
B C 
D E G 
(womöglich auch hintereinander!)
=D
:Stimmt, das fehlt noch. Allerdings fällt mir da jetzt aus dem Stehgreif keine wirklich schöne Lösung ein. Wer eine schöne Lösung kennt, möge sie aufschreiben --Falk 12:38, 6. Mai 2008 (CEST)
thread_title:  ausgabe in level order und niveau, artikel nicht komplett 

message: Hi Community:
ich habe an einer Lösung gearbeitet (funktionierend!) und werde diese demnächst posten, sofern kein anderer schneller ist als ich.
hier mal ein code-snippet vom baum:
wenn jemand lust hat, kann er das noch in dem wiki eintrag hinzufügen ;P
template <class typ>
void bintree<typ>::levelorder(treenode<typ> *pnode)
{
	clock_t end, start;
	double dif;
	 queue<treenode<typ>*> qnode;
	int i=0;
	qnode.push(pnode);
	start = clock();
	while (!qnode.empty())
	{	
		i++;
		treenode<typ> *pnode = qnode.front(); qnode.pop();
		cout << pnode->data << " ";
		if (pnode->left != nullnode)
			qnode.push(pnode->left);
		if (pnode->right != nullnode)
			qnode.push(pnode->right);
	}
	end = clock();
	dif = ((float)(end-start)/CLOCKS_PER_SEC);
	cout << "\n" << setprecision(3) << dif << " Sekunden\n";
	return;
}
(Der vorstehende, nicht signierte Beitrag stammt von 92.227.18.125 (Diskussion • Beiträge) 19:29, 15. Mai 2008) 
:Bitte schließe Quelltext immer mit   ein, ansonsten ist das kaum lesbar ;). Aso und Diskussionsbeiträge bitte immer mit ~~~~ am Ende signieren (auch wenn Du nicht angemeldet bist). Ich hab' das mal beides für Dich erledigt.
:Schön, dass Du eine Lösung gefunden hast. Und Danke, dass Du Dir die Arbeit gemacht hast. :)
:Zu Deinem Code: Ich hab's jetzt nicht getestet und glaube Dir einfach mal, dass es läuft. Aber bitte reduziere solche Sachen auf das Wesentliche, also möglichst ein Minimalbesipiel − so Sachen wie Zeitmessungen sind da eher weg zu lassen. Und schön wäre das ganze auch als Pseudocode − man kann ja nun nicht unbedingt voraussetzen, dass jeder jede Sprache beherrscht. Konkrete Implementierungen sind natürlich trotzdem erwünscht.
:Beste Grüße
:Falk 23:02, 15. Mai 2008 (CEST)
thread_title:  Lösung für Levelorder und Ausgabe per Niveau 

message: Hallo, kann vllt. jemand ein knappes Beispiel (am besten mit Bild) bringen, wo er mal alle 3 Reihenfolgen darstellt? Ich habe was ähnliches in en.wiki gefunden. Wäre echt nett. Danke --WissensDürster 19:51, 24. Jan. 2009 (CET)
thread_title:  Traversierung, Beispiele  

message: Meiner Meinung nach gehören die Abschnitte "Einfügen" und "Löschen" nicht in den Artikel Binärbaum,
da sie eine Ordnung der Knoten voraussetzen, in diesem Fall in der Art eines binären Suchbaums. Dahin
sollten die Abschnitte wohl auch verschoben werden, was vor der Änderung am 20. Juli 2010 wohl auch der
Fall war.
-- 92.231.7.10 (14:07, 28. Aug. 2010 (CEST)
thread_title:  Einfügen und Löschen 

message: Vielleicht gehört dies auch in den allgemeinen Artikel zu Baum (Graphentheorie) - aber
hier wie da fehlen die Definitionen für Grad und Tiefe eines Knotens und für Höhe und Grad des Baumes. (nicht signierter Beitrag von 84.60.42.202 (Diskussion) 21:39, 10. Nov. 2010 (CET)
replies: text: Viele von den angesprochenen Begriffen werden in Glossar Graphentheorie einigermaßen erläutert. Ist das nicht gut genug? -- Nomen4Omen 18:32, 11. Nov. 2010 (CET)
thread_title:  Elementare Definitionen fehlen 

message: Danke für die Verbesserung. Jedoch:
Wird die Traversierungs-Funktion ( z.B. postOrder() ) nicht exakt ein mal für jeden Knoten aufgerufen, so wie ja auch das print() genau ein mal kommen soll ? -- Nomen4Omen 18:15, 4. Jan. 2011 (CET)
thread_title:  Aufwand bei der rekursiven Traversierung 

message: Abschnitt Repräsentation durch ein Array:
"Die Indexierung beginnt bei 1 mit Verweis auf die Wurzel."
Ist hier nicht eher die Indizierung gemeint?
-> Indexierung
-> Indizierung (nicht signierter Beitrag von 92.224.198.0 (Diskussion) 18:14, 8. Jan. 2012 (CET)
replies: text: Sehe ich auch so. -- Nomen4Omen 10:34, 9. Jan. 2012 (CET)
thread_title:  Indizierung <--> Indexierung 

message: Unter 'weitere Begriffe' steht:
:'Man bezeichnet volle Binärbäume als vollständig, wenn alle Blätter die gleiche Tiefe haben, wobei die Tiefe eines Knotens als die Anzahl der Bögen bis zur Wurzel definiert ist.'
Das passt nicht ganz zu dem Abschnitt über balancierte Bäume:
:'Ein vollständig balancierter Binärbaum ist ein voller Binärbaum, bei dem die Abstände zweier beliebiger Blätter von der Wurzel um höchstens 1 voneinander abweichen. Ein vollständiger Binärbaum ist ein vollständig balancierter Binärbaum. (Siehe auch Balancierter Baum oder AVL-Baum.)'
Der Abschnitt würde IMHO mehr Sinn machen, wenn er einfach 'balancierte Bäume' und nicht 'vollständig balancierte Bäume' definieren würde. Oder wie ist das gemeint?
Abgesehen davon, was im Artikel als 'vollständiger' Binärbaum definiert ist, wird woanders auch als 'optimaler' Binärbaum bezeichnet. Auch wird woanders durchaus ein 'vollständiger' Binärbaum 'nur' mit einem maximalen Höhenunterschied von 1 definiert, wobei dann ein Level-Order-Traversal keine 'Lücken' enthalten darf (wie bei einem binären Heap). --Gms 23:43, 10. Feb. 2012 (CET)
thread_title:  voll, optimal und balanciert