<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Knotenstruktur erstellen...]]></title><description><![CDATA[<p>Ich weis das ich nerve mit meinen binären Bäumen, aber ich habe das immer noch nicht so ganz durchdrungen.</p>
<p>Ziel ist ein ganz simpler binärer Baum ( nich AVL, SearchTree, etc. )</p>
<p>Ich will das mit nem struct lösen:</p>
<pre><code class="language-cpp">struct Knoten
	{
		CString inhalt;	
		Knoten* p;		// Elternknoten
		Knoten* l;		// linker Kindknoten
		Knoten* r;		// rechter Kindknoten
	};
</code></pre>
<p>So jetzt fang ich an meine Wurzel zu erstellen:</p>
<pre><code class="language-cpp">CString temp = &quot;Hallo&quot;;

Knoten* root = new Knoten();
	root-&gt;inhalt = temp;
	root-&gt;p = NULL;
	root-&gt;l = NULL;
	root-&gt;r = NULL;
</code></pre>
<p>OK, hab ich auch geschnallt, Wurzel steht soweit!</p>
<p>Was ich mir hier aber nicht erklären kann warum ich Knoten* root als root benenne! Muss ich mir dann für jeden Knoten den ich im Baum erstelle einen Namen ausdenken. Eigentlich sollte doch der Name in CString inhalt stehen.</p>
<p>Jetzt versteh ich nicht wie ich einfach an die Wurzel links einen neuen Knoten anfüge. Ich muss ja den Zeiger l nutzen und dort einen Knoten erstellen, aber ich hab irgendwie nur noch Bäume und Wälder im Kopf, voll die Blockade, dabei hab ich irgendwie das Gefühl das mir nur ein simpler Teil zum Ganzen fehlt ( im Kopf bei mir mein ich jetzt ). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198181/knotenstruktur-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 09:30:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198181.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Nov 2007 11:41:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Knotenstruktur erstellen... on Mon, 19 Nov 2007 11:41:22 GMT]]></title><description><![CDATA[<p>Ich weis das ich nerve mit meinen binären Bäumen, aber ich habe das immer noch nicht so ganz durchdrungen.</p>
<p>Ziel ist ein ganz simpler binärer Baum ( nich AVL, SearchTree, etc. )</p>
<p>Ich will das mit nem struct lösen:</p>
<pre><code class="language-cpp">struct Knoten
	{
		CString inhalt;	
		Knoten* p;		// Elternknoten
		Knoten* l;		// linker Kindknoten
		Knoten* r;		// rechter Kindknoten
	};
</code></pre>
<p>So jetzt fang ich an meine Wurzel zu erstellen:</p>
<pre><code class="language-cpp">CString temp = &quot;Hallo&quot;;

Knoten* root = new Knoten();
	root-&gt;inhalt = temp;
	root-&gt;p = NULL;
	root-&gt;l = NULL;
	root-&gt;r = NULL;
</code></pre>
<p>OK, hab ich auch geschnallt, Wurzel steht soweit!</p>
<p>Was ich mir hier aber nicht erklären kann warum ich Knoten* root als root benenne! Muss ich mir dann für jeden Knoten den ich im Baum erstelle einen Namen ausdenken. Eigentlich sollte doch der Name in CString inhalt stehen.</p>
<p>Jetzt versteh ich nicht wie ich einfach an die Wurzel links einen neuen Knoten anfüge. Ich muss ja den Zeiger l nutzen und dort einen Knoten erstellen, aber ich hab irgendwie nur noch Bäume und Wälder im Kopf, voll die Blockade, dabei hab ich irgendwie das Gefühl das mir nur ein simpler Teil zum Ganzen fehlt ( im Kopf bei mir mein ich jetzt ). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405814</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Mon, 19 Nov 2007 11:41:22 GMT</pubDate></item><item><title><![CDATA[Reply to Knotenstruktur erstellen... on Mon, 19 Nov 2007 11:48:47 GMT]]></title><description><![CDATA[<p>&quot;root&quot; (übersetzt &quot;Wurzel&quot;) ist der Name des Wurzelknotens, an den du letzen Endes deinen gesamten Baum anhängen willst. Für weitere Knoten mußt du nicht jedes Mal eine neue Variable anlegen - da reicht es, vorübergehend eine Variable anzulegen, zu füllen und anschließend den Knoten an die richtige Stelle in den Baum einzufügen:</p>
<pre><code class="language-cpp">Knoten* tmp = new Knoten();
Knoten* insert_pos = ... entscheide dich, wo der neue Knoten hingehört;
tmp-&gt;l = tmp-&gt;r = NULL;
tmp-&gt;p = insert_pos;
insert_pos-&gt;l = tmp;// hier hängen wir ans linke Ende an
tmp-&gt;inhalt = &quot;Guten Abend&quot;;
//hier kannst du tmp und insert_pos entsorgen (oder recyceln) - an den Knoten kommst du später ran, indem du dich von der Wurzel durchhangelst
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1405816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405816</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 19 Nov 2007 11:48:47 GMT</pubDate></item><item><title><![CDATA[Reply to Knotenstruktur erstellen... on Mon, 19 Nov 2007 12:05:53 GMT]]></title><description><![CDATA[<p>Was ist mit:</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Knoten* insert_pos = ... entscheide dich, wo der neue Knoten hingehört;</p>
</blockquote>
<p>gemeint?<br />
Links von der Wurzel soll er hin!</p>
<p>Meinst du:</p>
<pre><code class="language-cpp">Knoten* insert_pos = root;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1405831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405831</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Mon, 19 Nov 2007 12:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to Knotenstruktur erstellen... on Mon, 19 Nov 2007 12:18:53 GMT]]></title><description><![CDATA[<p>Ja, für den Anfang reicht 'insert_pos=root;' - aber wenn der Baum größer wird, ist diese Position ja vergeben und dur mußt dich von oben durchhangeln bis zur gewünschten Zielposition.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405837</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 19 Nov 2007 12:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to Knotenstruktur erstellen... on Mon, 19 Nov 2007 14:42:05 GMT]]></title><description><![CDATA[<p>Ja, danke, das hat mich schon ein bisschen weitergebracht!</p>
<p>Ein Problem habe ich jedoch noch, ich möchte nicht jedesmal zu der Position durchhangeln wo ich einen Knoten einfügen will sondern gleich dort bleiben wo ich den letzten Knoten angefügt habe und dort weitermachen.</p>
<p>Also an den linken Knoten von der Wurzel aus gesehen mit dem Inhalt &quot;Guten Abend&quot; soll jetzt wieder einfach links einer dran.</p>
<p>Dachte mir das müsste ja ganz einfach sein:</p>
<pre><code class="language-cpp">//Wurzel
Knoten* root = new Knoten();
root-&gt;inhalt = &quot;Wurzel&quot;;
root-&gt;p = NULL;
root-&gt;l = NULL;
root-&gt;r = NULL;			

// linker Ast
Knoten* insert_pos = root;
Knoten* tmp = new Knoten();
tmp-&gt;l = NULL;
tmp-&gt;r = NULL;
tmp-&gt;p = insert_pos;
insert_pos-&gt;l = tmp;		
tmp-&gt;inhalt = &quot;Guten Abend&quot;; 

// nächster linker Ast
Knoten* insert_pos = tmp;       //überschreibst einfach insert_pos mit dem
Knoten* tmp = new Knoten();     //letzten + tmp wieder neuen Knoten erstellen...
tmp-&gt;l = NULL;
tmp-&gt;r = NULL;
tmp-&gt;p = insert_pos;
insert_pos-&gt;l = tmp;
tmp-&gt;inhalt = &quot;Guten Morgen&quot;;            // und der Rest wie gehabt
</code></pre>
<p>Jetzt bringt er mir Fehler mit Mehrfachinitialisierung/Neudefinition für insert_pos und tmp. Bei näherem betrachten ist das ja auch klar. Du hattest schon angesprochen das die entsorgt werden müssen. Mit dem delete-Operator denke ich mal. Wie und wo setze ich den denn am besten ein?<br />
Oder hab ich schon wieder einen Denkfehler und das geht soo gar nicht!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405944</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Mon, 19 Nov 2007 14:42:05 GMT</pubDate></item><item><title><![CDATA[Reply to Knotenstruktur erstellen... on Mon, 19 Nov 2007 14:45:40 GMT]]></title><description><![CDATA[<p>Die Variablen kannst du entsorgen (aus dem Scope fallen lassen) oder recyclen (wiederverwenden) - die Daten dahinter benötigst du noch, wenn du dir nicht den Baum absägen willst. Und zum Wiederverwenden kannst du den <em>existierenden</em> Variablen einfach neue Werte zuweisen:</p>
<pre><code class="language-cpp">//Wurzel
Knoten* root = new Knoten();
root-&gt;inhalt = &quot;Wurzel&quot;;
root-&gt;p = NULL;
root-&gt;l = NULL;
root-&gt;r = NULL;            

// linker Ast
Knoten* insert_pos = root;
Knoten* tmp = new Knoten();
tmp-&gt;l = NULL;
tmp-&gt;r = NULL;
tmp-&gt;p = insert_pos;
insert_pos-&gt;l = tmp;        
tmp-&gt;inhalt = &quot;Guten Abend&quot;; 

// nächster linker Ast
/*Knoten* */insert_pos = tmp;       //überschreibst einfach insert_pos mit dem letzten
/*Knoten* */tmp = new Knoten();     //wieder neuen Knoten erstellen...
tmp-&gt;l = NULL;
tmp-&gt;r = NULL;
tmp-&gt;p = insert_pos;
insert_pos-&gt;l = tmp;
tmp-&gt;inhalt = &quot;Guten Morgen&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1405945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405945</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 19 Nov 2007 14:45:40 GMT</pubDate></item><item><title><![CDATA[Reply to Knotenstruktur erstellen... on Mon, 19 Nov 2007 14:56:33 GMT]]></title><description><![CDATA[<p>Ja, stimmt ist klar. Ich denke immer viel zu kompliziert. Und absägen ist gar nicht gut, hast recht! Vielen Dank für die Geduld!</p>
<p>Wollte nochmal fragen wie ich den Debugger am besten handhabe um zu kontrollieren ob die Knoten mit den jeweiligen Inhalten an der richtigen Stelle im Baum stehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405957</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Mon, 19 Nov 2007 14:56:33 GMT</pubDate></item></channel></rss>