<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Binärer Baum in C?</title>
    <link>http://forum.geizhals.at/feed.jsp?id=71356</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(8): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359874.html#359874</link>
      <description>RDNODE sollte das BTNODE sein und RDNODEP ist BTNODEP, das hab ich umbenannt.&lt;br&gt;Das mit dem = müßte schon passen, der Block nach dem if wird nur betreten falls das anfordern des Speichers funktioniert, ansonsten nicht.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 13:21:44 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359874.html#359874</guid>
      <dc:creator>Edi</dc:creator>
      <dc:date>2002-04-23T13:21:44Z</dc:date>
    </item>
    <item>
      <title>Re(7): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359726.html#359726</link>
      <description>Was ist RDNODE und RDNODEP?&lt;br&gt;&lt;br&gt;Und in der Zeile &lt;br&gt;if (elem = (RDNODEP) malloc(sizeof(RDNODE))) &lt;br&gt;sollte == statt = stehen, vermute ich mal.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 11:14:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359726.html#359726</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-04-23T11:14:05Z</dc:date>
    </item>
    <item>
      <title>Re(5): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359716.html#359716</link>
      <description>Is' so scho' schwer genug zu verstehen für jemanden, der mit Rekursion und Bäumen noch wenig am Hut hat. Ausserdem geht's ja eben um einen Binärbaum. &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 11:03:01 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359716.html#359716</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-04-23T11:03:01Z</dc:date>
    </item>
    <item>
      <title>Re(7): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359701.html#359701</link>
      <description>(*root)-&gt;key = .......&lt;br&gt;&lt;br&gt;so müßte es heißen.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 10:32:18 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359701.html#359701</guid>
      <dc:creator>le</dc:creator>
      <dc:date>2002-04-23T10:32:18Z</dc:date>
    </item>
    <item>
      <title>Re(6): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359699.html#359699</link>
      <description>Das hab ich mir eh auch gedacht, dass ich da irgendwo hingreife wo ich eigentlich gar nicht sein sollte.&lt;br&gt;Keine Ahnung ob es die Assistenten aus einem Buch haben, oder ob es ihren eigenen Gedanken entsprungen ist.&lt;br&gt;&lt;br&gt;Hier kannst du dir mal meine kläglichen Versuche ansehen:&lt;br&gt;&lt;br&gt;#include&lt;stdlib h/&gt;&lt;br&gt;#include&lt;stdio h/&gt;&lt;br&gt;#include&lt;string h/&gt;&lt;br&gt;&lt;br&gt;#include "Liste.h"&lt;br&gt;#include "BTree.h"&lt;br&gt;&lt;br&gt;void RDInit(RDNODE **root)&lt;br&gt;{&lt;br&gt;	RDNODEP elem;&lt;br&gt;&lt;br&gt;	if (elem = (RDNODEP) malloc(sizeof(RDNODE))) &lt;br&gt;	{&lt;br&gt;		strcpy(elem-&gt;key, "root");&lt;br&gt;		elem-&gt;list=NULL;&lt;br&gt;		elem-&gt;left=NULL;&lt;br&gt;		elem-&gt;right=NULL;&lt;br&gt;		&lt;br&gt;		root = &amp;elem;&lt;br&gt;	&lt;br&gt;		printf("KEY: %s",elem-&gt;key);&lt;br&gt;	}&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;void RDPrint(RDNODE **root)&lt;br&gt;{&lt;br&gt;	RDNODEP elem;&lt;br&gt;&lt;br&gt;	elem=*root;	//elem=&amp;root;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;	//if (elem = (RDNODEP) malloc(sizeof(RDNODE))) &lt;br&gt;	{		&lt;br&gt;		printf("KEY: %s",elem-&gt;key);&lt;br&gt;	&lt;br&gt;		if(elem-&gt;left!=NULL)&lt;br&gt;			RDPrint(&amp;elem-&gt;left);&lt;br&gt;		else if(elem-&gt;right!=NULL)&lt;br&gt;&amp;nbsp;&amp;nbsp;		&amp;nbsp;&amp;nbsp; RDPrint(&amp;elem-&gt;right);&lt;br&gt;	}&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int main(void)&lt;br&gt;{&lt;br&gt;	RDNODE **root;&lt;br&gt;	char *key="ler";&lt;br&gt;&lt;br&gt;	root=NULL;&lt;br&gt;&lt;br&gt;	RDInit(root);&lt;br&gt;	RDPrint(root);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//RDInsertKey(root, key); &lt;br&gt;	&lt;br&gt;	return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;Da bekomm ich beim ausführen wenn er RDPrint aufruft irgendwo einen Speicherverletzungsfehler.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 10:29:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359699.html#359699</guid>
      <dc:creator>Edi</dc:creator>
      <dc:date>2002-04-23T10:29:12Z</dc:date>
    </item>
    <item>
      <title>Re(6): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359694.html#359694</link>
      <description>Also ich versuchs mal:&lt;br&gt;&lt;br&gt;typedef struct {&lt;br&gt; char key;&lt;br&gt; char irgendwas;&lt;br&gt;} TEST;&lt;br&gt;&lt;br&gt;TEST erstes;&lt;br&gt;TEST *eintrag;&lt;br&gt;TEST **root;&lt;br&gt;&lt;br&gt;&lt;br&gt;eintrag = &amp;erstes;&lt;br&gt;&lt;br&gt;eintrag-&gt;key = 'dundidum';&lt;br&gt;&lt;br&gt;root = &amp;eintrag;&lt;br&gt;&lt;br&gt;*root-&gt;key = 'neues dumdidum;&lt;br&gt;&lt;br&gt;Hab ich das nun richtig interpretiert???&lt;br&gt;&lt;br&gt;MfG Jack&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 10:23:28 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359694.html#359694</guid>
      <dc:creator>Jack Sniper</dc:creator>
      <dc:date>2002-04-23T10:23:28Z</dc:date>
    </item>
    <item>
      <title>Re(4): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359693.html#359693</link>
      <description>Das Problem ist, daß diese simplen Bäume, die du hier hernimmst, leider degenerieren können und dann wieder erst eine linerare Liste vorliegt, die man in O(n) durchsuchen kann. Bessere Ansätze sind da z.B. AVL-Bäume oder B-Bäume. Aber für's grundsätzliche Verstehen sind diese simplen Binärbäume natürlich ideal.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 10:19:37 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359693.html#359693</guid>
      <dc:creator>le</dc:creator>
      <dc:date>2002-04-23T10:19:37Z</dc:date>
    </item>
    <item>
      <title>Re(5): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359677.html#359677</link>
      <description>Wahrscheinlich weil Du ins Nirvana greifst. &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Aus welchem Buch isses denn, vielleicht kommen wir so dahinter.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 09:55:35 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359677.html#359677</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-04-23T09:55:35Z</dc:date>
    </item>
    <item>
      <title>Re(4): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359663.html#359663</link>
      <description>Das mit der Rukursion war mir eh auch schon klar, trotzdem danke für deine Ausführung.&lt;br&gt;Das Problem ist, ich brauch es für die Uni und hab leider die Funktionsschnittstellen so vorgegeben, würde es sonst auch nie mit ** machen, ist total umsonst und nur verwirrend. Ich komm aber einfach nicht dahinter wie ich mit ** auf die Knoten zugreifen kann, das mit der Liste wäre auch kein Problem wenn ich nur mal auf den Knoten selbst Zugriff hätte, bekomm entweder immer&amp;nbsp;&amp;nbsp;Warnings, oder er kompiliert es, gibt mir aber beim Ausführen des Programm irgendwelche kryptischen Zeichen aus.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 09:42:56 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359663.html#359663</guid>
      <dc:creator>Edi</dc:creator>
      <dc:date>2002-04-23T09:42:56Z</dc:date>
    </item>
    <item>
      <title>Re(3): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359630.html#359630</link>
      <description>Du greifst auf die Knoten gar nicht direkt zu. Du nutzt die Ähnlichkeit aus.&lt;br&gt;&lt;br&gt;Der Trick dabei ist, dass Du die Funktion aus sich selbst heraus nochmal aufrufst, mit den Nachfolgern. So Marke "divide and conquer". Die Wurzel hat keinen Schimmer, wie weit sie nach unten gehen wird, sie gibt einfach die "Kontrolle" mal an den linken und mal an den rechten Nachfolger weiter (dazwischen wird ihr Inhalt ausgegeben). Diese Nachfolger machen nun genau das gleiche. Jeder Knoten "sieht" dabei nur sich selbst und (so vorhanden) seine Nachfolger.&lt;br&gt;&lt;br&gt;Aufgerufen wird die Rekursion, indem Du als Parameter für den neuen Aufruf entweder den linken (also root-&gt;left) oder den rechten (root-&gt;right) übergibst. Dass der Parameter root heissen soll is' dabei vielleicht ein klein wenig verwirrend, weil es wird ein einziges Mal (nämlich beim Aktivieren von "aussen") mit dem Wurzelknoten aufgerufen. Alle anderen Aufrufe passieren von innerhalb der RDPrint Funktion! Der Wurzelknoten ruft's also mit seinem linken Nachfolger auf, der macht das gleiche, und der wieder, und der wieder... bis es keinen linken Nachfolger mehr gibt. Wieviele Aufrufe da passieren und wie lang's dauert, wieviele Nachfolger es da gibt und wo die hängen, das "weiss" der Wurzelknoten nicht. Er wartet einfach darauf, dass die Ausführung wieder zu ihm zurückkommt.&lt;br&gt;&lt;br&gt;Nehmen wir an, wir haben folgenden Tree:&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;br&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;br&gt;1&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;5 7&lt;br&gt;&lt;br&gt;Wir rufen's mit der Wurzel (4) auf. Diese sieht, sie hat einen linken Nachfolger (2) und ruft die Funktion mit diesem auf. 2 merkt, er hat einen linken Nachfolger (1) und ruft die Funktion mit diesem auf. 1 hat keinen Linken nachfolger (1. Zeile fertig).&lt;br&gt;&lt;br&gt;1 wird ausgegeben. (2. Zeile fertig)&lt;br&gt;&lt;br&gt;1 merkt er hat keinen rechten Nachfolger (3. Zeile fertig). Damit ist die Funktion in 1 fertig und die Ausführung kehrt zurück zu 2. 2 ist jetzt mit der 1. Zeile des Codes fertig.&lt;br&gt;&lt;br&gt;2 wird ausgegeben&lt;br&gt;&lt;br&gt;2 merkt, es hat einen rechten Nachfolger (3) und führt die Funktion mit diesem als parameter aus. 3 geht's jetzt so wie 1 (d.h. kein linker Nachfolger, Ausgabe, kein rechter Nachfolger, Funktion fertig).&lt;br&gt;&lt;br&gt;Danach geht die Ausführung zurück an 2. 2 ist mit der 3. Zeile jetzt auch fertig (das war die Übergabe an 3) und beendet seine Funktion. Damit geht die Ausführung zurück an 4. 4 ist jetzt mit seiner 1. Zeile fertig.&lt;br&gt;&lt;br&gt;4 wird ausgegeben&lt;br&gt;&lt;br&gt;Danach wiederholt sich das ganze Spiel mit dem rechten Ast des Baumes (ich erspar mir jetzt die Tipperei).&lt;br&gt;&lt;br&gt;Warum Du's als ** definieren willst versteh' ich nun nicht ganz, 'n Zeiger würde reichen. Ich komm' auch noch nicht dahinter, wozu die verkette Liste da drin nutzen soll.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 08:55:28 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359630.html#359630</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-04-23T08:55:28Z</dc:date>
    </item>
    <item>
      <title>Re(2): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359609.html#359609</link>
      <description>Danke erst mal für die ausführliche Beschreibung, aber mir war schon klar wie ein Binärer Baum funktioniert, mein einziges Problem liegt darin, das meine ganzen Funktionen die ich schreiben soll die root nicht als Zeiger übergeben bekommen, sondern als Zeiger auf Zeiger. Das Codestück das du mir oben hingeschrieben hast hatte ich auch schon, nur mit anderer Traversierung.&lt;br&gt;&lt;br&gt;Ich hab mir die root in meiner main so deklariert:&lt;br&gt;RNODE **root=NULL;&lt;br&gt;&lt;br&gt;Danach versuche ich einen Knoten einzufügen: &lt;br&gt;void RDInsert(**root, key);&lt;br&gt;&lt;br&gt;Dann soll die Funktion für die Ausgabe aufgerufen werden:&lt;br&gt;RDPrint(**root);&lt;br&gt;&lt;br&gt;Mein Problem liegt beim ausprogrammieren der Funktionen, und zwar wie kann ich z.B. bei der Ausgabe über root auf die einzelnen Knoten zugreifen, oder müßte ich root überhaupt anders deklarieren?&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 08:24:19 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359609.html#359609</guid>
      <dc:creator>Edi</dc:creator>
      <dc:date>2002-04-23T08:24:19Z</dc:date>
    </item>
    <item>
      <title>Re(4): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359597.html#359597</link>
      <description>War ja auch nicht als Scherz gedacht -&gt; da gibts nix zum lachen&lt;br&gt;&lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 08:07:26 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359597.html#359597</guid>
      <dc:creator>MikeM</dc:creator>
      <dc:date>2002-04-23T08:07:26Z</dc:date>
    </item>
    <item>
      <title>Re(3): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359593.html#359593</link>
      <description>Lach ned, ich bin am Grübeln ob ich ned ein Begleitbuch zu AlgoDat schreiben soll, weil das Scriptum wird von Jahr zu Jahr mieser (und fehlerhafter).&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 08:02:42 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359593.html#359593</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-04-23T08:02:42Z</dc:date>
    </item>
    <item>
      <title>Re(3): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359592.html#359592</link>
      <description>Sortierhash. Du kannst nämlich in den Tree recht einfach und mit ziemlich geringen Aufwand einsortieren, und beim Auslesen bekommst auf die Art ganz automatisch 'ne sortierte Liste 'raus. Ausserdem ist's Suchen unglaublich einfach und schnell (binary search geht da drin ME am schnellsten. Und BS is' der schnellste Suchalgo).&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 08:02:03 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359592.html#359592</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-04-23T08:02:03Z</dc:date>
    </item>
    <item>
      <title>Re(2): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359584.html#359584</link>
      <description>Bitte schreib ein Buch - ich kaufs dir ab!&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 07:54:45 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359584.html#359584</guid>
      <dc:creator>MikeM</dc:creator>
      <dc:date>2002-04-23T07:54:45Z</dc:date>
    </item>
    <item>
      <title>Re(2): Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359552.html#359552</link>
      <description>Das ist ja ganz nett.&lt;br&gt;&lt;br&gt;Aber wer kann mir einen genauen Anwendungsfall sagen wo soetwas verwendet wird???&lt;br&gt;&lt;br&gt;MfG Jack&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 07:08:35 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359552.html#359552</guid>
      <dc:creator>Jack Sniper</dc:creator>
      <dc:date>2002-04-23T07:08:35Z</dc:date>
    </item>
    <item>
      <title>Re: Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359464.html#359464</link>
      <description>Primär glaub ich mal, dass Du uns irgendwas vorenthältst, weil root ned definiert ist. &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt; &lt;br&gt;&lt;br&gt;Im Endeffekt geht's darum, dass Du die Selbstähnlichkeit so eines Baumes ausnutzen kannst. Zeichne Dir so 'nen Baum mal auf. Ich mein's ernst, Papier, Bleistift, zeichnen! So 3-4 Ebenen dürften reichen. &lt;br&gt;&lt;br&gt;So. Als nächstes, vergiss für 'nen Moment C. Nix mehr an programmieren denken, jetzt wird's künstlerisch! &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Jetzt schau Dir mal die Wurzel an (den Knoten ohne Vorgänger), und seine Nachfolger. Sprich, den ganzen Baum. So. Jetzt schau Dir den linken Nachfolger an, und seine Nachfolger. Du wirst feststellen, er ist dem ganzen Baum sehr ähnlich, nur "kleiner".&lt;br&gt;&lt;br&gt;Weiters ist es von Vorteil, wenn Du Dir die Knoten von "innen" betrachtest. Also wennst so tust, als ob Du "im" Knoten die Ausgabe machst. Versuch's Dir vorzustellen. Nicht an Code denken! Vorstellen! Schau auf den 1. Knoten. Was müssen wir tun?&lt;br&gt;&lt;br&gt;Nun, im Endeffekt nur 3 Schritte:&lt;br&gt;&lt;br&gt;1. Wenn es einen linken Nachfolger gibt, sag diesem, er soll sich ausgeben.&lt;br&gt;2. Gib mich aus.&lt;br&gt;3. Wenn's einen rechten Nachfolger gibt, sag diesem, er soll sich ausgeben.&lt;br&gt;&lt;br&gt;Die komische Formulierung "sag diesem..." hat folgenden Sinn: Dieser Nachfolger, bekommt ebenfalls wieder diesen 3-Punkte-Plan. Das heisst, er schaut nach ob er einen linken nachfolger hat... dieser wieder ... dieser wieder... usw.&lt;br&gt;&lt;br&gt;Da wir zu Schritt 2 im 1. Knoten erst kommen, wenn wir mit Schritt 3 im linken Nachfolger fertig sind, wird dieser vor dem 1. Knoten ausgegeben. Das heisst, wir machen bei Schritt 2 in jeder Rekursion erst weiter, wenn der Nachfolger komplett fertig ist, dieser Knoten wird erst ausgegeben, wenn wir aus dem Nachfolger "zurückkommen".&lt;br&gt;&lt;br&gt;Der Code selbst ist recht einfach (umschreiben für Deine Zwecke darfst ihn allerdings doch selbst &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;).&lt;br&gt;&lt;br&gt;void printnode (node* current)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;if (current-&gt;left) printnode (current-&gt;left);&lt;br&gt;&amp;nbsp;&amp;nbsp;OutputCurrentnode();&lt;br&gt;&amp;nbsp;&amp;nbsp;if (current-&gt;right) printnode (current-&gt;right);&lt;br&gt;}&lt;br&gt;&lt;br&gt;Was der Code macht sind im Wesentlichen die 3 Schritte, die ich oben besprochen hab.&lt;br&gt;&lt;br&gt;Zuerst wird geprüft, ob's einen linken Nachfolger gibt (schau bitte auf Deiner Zeichnung von vorhin mit!). Falls ja, wird in diesen "gesprungen", und die Ausgaberoutine für diesen aufgerufen. Dieser macht das gleiche und prüft, ob er einen linken Nachfolger hat, dieser wieder, und wieder... Es ist WESENTLICH anzumerken, dass im Ur-Knoten, und in jedem seiner linken Nachfolger, die wir anspringen, inzwischen GAR NIX passiert, da wird derzeit nix ausgegeben und gar nix gemacht bis wir wieder "zurück" sind!&lt;br&gt;&lt;br&gt;Wenn wir dann irgendwann einen Knoten finden, der keinen linken Nachfolger hat passiert in der 1. Zeile nix und wir kommen zur 2. IN DIESEM KNOTEN. Da wird dann der Inhalt ausgegeben. Dann kommen wir zur 3. Zeile, und wenn's einen rechten Nachfolger gibt, wird das Spiel mit diesem wiederholt. Gibt's keinen sind wir mit diesem Knoten fertig. Dann geht's zurück zum Vorgänger, dort kommen wir damit in die 2. Zeile (remember, wir haben vorher gesagt es passiert in diesem Knoten nix bis wir aus dem Nachfolger zurück sind, der "steht" immer noch, wie alle seine Vorgänger, auf der 1. Zeile und wartet darauf, dass die Nachfolger fertig werden).&lt;br&gt;&lt;br&gt;Dort passiert nun das gleiche, Output, rechter Nachfolger, usw.&lt;br&gt;&lt;br&gt;Das Spiel setzt sich nun durch den ganzen Baum durch fort, bis alle Knoten ausgegeben sind.&lt;br/&gt;</description>
      <pubDate>Tue, 23 Apr 2002 00:28:46 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359464.html#359464</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2002-04-23T00:28:46Z</dc:date>
    </item>
    <item>
      <title>Binärer Baum in C?</title>
      <link>http://forum.geizhals.at/t71356,359120.html#359120</link>
      <description>Ich komm einfach mit dem Binären Baum nicht zusammen.&lt;br&gt;Also die Struktur sieht wie folgt aus:&lt;br&gt;&lt;br&gt;struct _BTREE&lt;br&gt;{&lt;br&gt;	char key[100];	//Key&lt;br&gt;	LIST *list;	//einfach verkettete Liste &lt;br&gt;	struct _BTREE *left;	//linker Sohn&lt;br&gt;	struct _BTREE *right;//rechter Sohn&lt;br&gt;};&lt;br&gt;&lt;br&gt;typedef struct _BTREE BTNODE;&lt;br&gt;typedef BTNODE *BTNODEP;&lt;br&gt;&lt;br&gt;&lt;br&gt;Jetzt soll ich eine Funktion implementieren, die die einzelnen Knoten des Baums ausgibt:&lt;br&gt;&lt;br&gt;void BTPrint(**root)&lt;br&gt;&lt;br&gt;Ich hab nun keine Ahnung wie ich mit dem Zeiger auf Zeiger umgehen soll, vielleicht kann mir hier jemand etwas weiterhelfen.&lt;br/&gt;</description>
      <pubDate>Mon, 22 Apr 2002 17:48:57 GMT</pubDate>
      <guid>http://forum.geizhals.at/t71356,359120.html#359120</guid>
      <dc:creator>Edi</dc:creator>
      <dc:date>2002-04-22T17:48:57Z</dc:date>
    </item>
  </channel>
</rss>
