<?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[Baumstruktur]]></title><description><![CDATA[<p>Hallo @all!</p>
<p>Wie im Titel zu sehen, habe ich ein Problem mit einer Baumstruktur, welche ich für ein Menü benötige. Ich benötige etwa folgenden Aufbau:<br />
Jeder Knoten hat eine Verknüpfung zum nächsten (untergeordneten) Knoten sowie zum Knoten unter ihm (auf gleicher Ebene).</p>
<p>Mit folgendem Code habe ich eine Interpretation versucht:</p>
<pre><code class="language-cpp">class cItemEntry {
public:
    cItemEntry( int status, int bitmap_num)
    :   Status(status), Bitmap_num( bitmap_num)
    {
        Next = NULL;
        Bottom = NULL;
    }

	int Status;		// der Status
	int Bitmap_num;		// der Index für die Nummer
	cItemEntry *Next;	// das Element in der Ordnung darunter (rechts)
	cItemEntry *Bottom;	// Element unten
};

cItemEntry* InsertEntry( cItemEntry *basis, int status, int bitmap_num)
{
    cItemEntry *entry = new cItemEntry( status, bitmap_num);

    if( basis-&gt;Next == NULL)
    {
        basis-&gt;Next = entry;
    }
    else  // hier kommt das Problem!
    {
        cItemEntry *tmp = basis-&gt;Next;
        do {
            tmp = tmp-&gt;Bottom;
        } while( tmp != NULL);
        tmp = entry;
    }
    return entry;
}
</code></pre>
<p>Mit meiner Version kann ich immer nur einen Knoten pro Basisknoten erstellen.<br />
Wenn die Basis bereits einen Nachfolger hat, soll jedoch ein Unterpunkt erstellt werden.<br />
Ich frage mich, wieso der else-Block nicht so funktioniert, wie ich es mir vorstelle?</p>
<p>Danke für eure Hilfe! :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279295/baumstruktur</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 16:23:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279295.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Dec 2010 22:47:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Baumstruktur on Wed, 22 Dec 2010 22:47:50 GMT]]></title><description><![CDATA[<p>Hallo @all!</p>
<p>Wie im Titel zu sehen, habe ich ein Problem mit einer Baumstruktur, welche ich für ein Menü benötige. Ich benötige etwa folgenden Aufbau:<br />
Jeder Knoten hat eine Verknüpfung zum nächsten (untergeordneten) Knoten sowie zum Knoten unter ihm (auf gleicher Ebene).</p>
<p>Mit folgendem Code habe ich eine Interpretation versucht:</p>
<pre><code class="language-cpp">class cItemEntry {
public:
    cItemEntry( int status, int bitmap_num)
    :   Status(status), Bitmap_num( bitmap_num)
    {
        Next = NULL;
        Bottom = NULL;
    }

	int Status;		// der Status
	int Bitmap_num;		// der Index für die Nummer
	cItemEntry *Next;	// das Element in der Ordnung darunter (rechts)
	cItemEntry *Bottom;	// Element unten
};

cItemEntry* InsertEntry( cItemEntry *basis, int status, int bitmap_num)
{
    cItemEntry *entry = new cItemEntry( status, bitmap_num);

    if( basis-&gt;Next == NULL)
    {
        basis-&gt;Next = entry;
    }
    else  // hier kommt das Problem!
    {
        cItemEntry *tmp = basis-&gt;Next;
        do {
            tmp = tmp-&gt;Bottom;
        } while( tmp != NULL);
        tmp = entry;
    }
    return entry;
}
</code></pre>
<p>Mit meiner Version kann ich immer nur einen Knoten pro Basisknoten erstellen.<br />
Wenn die Basis bereits einen Nachfolger hat, soll jedoch ein Unterpunkt erstellt werden.<br />
Ich frage mich, wieso der else-Block nicht so funktioniert, wie ich es mir vorstelle?</p>
<p>Danke für eure Hilfe! :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1998128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1998128</guid><dc:creator><![CDATA[pete76]]></dc:creator><pubDate>Wed, 22 Dec 2010 22:47:50 GMT</pubDate></item><item><title><![CDATA[Reply to Baumstruktur on Wed, 22 Dec 2010 22:57:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">cItemEntry *tmp = basis-&gt;Next;
do {
   tmp = tmp-&gt;Bottom;
} while( tmp != NULL);
tmp = entry;
</code></pre>
<p>Du gehst den Baum solange runter bis tmp null ist. Danach weist du tmp noch entry zu. Mit der Datenstruktur passiert währenddessen gar nichts.</p>
<p>Edit: Na gut, ich weiß immer nicht, ob ich nur den Fehler auflisten soll, oder schon eine Lösung geben -.-</p>
<pre><code class="language-cpp">cItemEntry *elem = basis;

while( elem-&gt;next ) {
   elem = elem-&gt;next;
}

elem-&gt;next = entry;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1998131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1998131</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 22 Dec 2010 22:57:27 GMT</pubDate></item><item><title><![CDATA[Reply to Baumstruktur on Wed, 22 Dec 2010 23:13:34 GMT]]></title><description><![CDATA[<p>Okay, mit</p>
<pre><code class="language-cpp">cItemEntry *elem = basis-&gt;Next;

while( elem-&gt;Bottom ) {
  elem = elem-&gt;Bottom;
}
elem-&gt;Bottom = entry;
</code></pre>
<p>erhalte ich das was ich wollte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1998134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1998134</guid><dc:creator><![CDATA[pete76]]></dc:creator><pubDate>Wed, 22 Dec 2010 23:13:34 GMT</pubDate></item><item><title><![CDATA[Reply to Baumstruktur on Wed, 22 Dec 2010 23:19:33 GMT]]></title><description><![CDATA[<p>Ach siehst du, sorry, bin nicht mehr so fit... sehe hier nur noch eckige, geschwungene und runde Klammern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1998135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1998135</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 22 Dec 2010 23:19:33 GMT</pubDate></item></channel></rss>