<?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[Basis eines Trees]]></title><description><![CDATA[<p>Lacht bitte nicht, aber ich hab noch nie sowas wie nen Tree gebraucht.<br />
Jetzt steh ich hier ein wenig verlassen und weiss nicht wie ich es beginnen soll :D.<br />
Okay, der Baum hat einen Stamm und Äste und am Ende die Blätter.<br />
Ast wäre jetzt bei mir einfach die Klasse Node.<br />
Nur wenn ich sowas mache:</p>
<pre><code class="language-cpp">class Quadnode
{
public:
    Quadnode()
    {
        m_nodes = new Quadnode*[4];
        m_nodes[0] = new Quadnode();
        m_nodes[1] = new Quadnode();
        m_nodes[2] = new Quadnode();
        m_nodes[3] = new Quadnode();
    }

    inline Quadnode* operator[](int index)
    {
        return m_nodes[index];
    }

protected:
   Quadnode** m_nodes;
};
</code></pre>
<p>Okay, dann hab ich logischerweise irgendwann einen Stack Overflow.<br />
Wie begrenze ich das ganze sinnvoll?<br />
Was ich will ist ein QuadTree mit insgesamt 32 Unterteilungen. Ich denke das ist genug.<br />
Also 8 Äste mit je 4 Blättern.<br />
Das oberste Element ist der ganze Bildschirm, dessen Äste sollen dann den Bildschirm immer weiter aufteilen.<br />
Ich renn hier irgendwie dauernd gegen eine Wand, ich seh den Ansatz nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285301/basis-eines-trees</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 10:27:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285301.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 Apr 2011 00:55:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 00:55:59 GMT]]></title><description><![CDATA[<p>Lacht bitte nicht, aber ich hab noch nie sowas wie nen Tree gebraucht.<br />
Jetzt steh ich hier ein wenig verlassen und weiss nicht wie ich es beginnen soll :D.<br />
Okay, der Baum hat einen Stamm und Äste und am Ende die Blätter.<br />
Ast wäre jetzt bei mir einfach die Klasse Node.<br />
Nur wenn ich sowas mache:</p>
<pre><code class="language-cpp">class Quadnode
{
public:
    Quadnode()
    {
        m_nodes = new Quadnode*[4];
        m_nodes[0] = new Quadnode();
        m_nodes[1] = new Quadnode();
        m_nodes[2] = new Quadnode();
        m_nodes[3] = new Quadnode();
    }

    inline Quadnode* operator[](int index)
    {
        return m_nodes[index];
    }

protected:
   Quadnode** m_nodes;
};
</code></pre>
<p>Okay, dann hab ich logischerweise irgendwann einen Stack Overflow.<br />
Wie begrenze ich das ganze sinnvoll?<br />
Was ich will ist ein QuadTree mit insgesamt 32 Unterteilungen. Ich denke das ist genug.<br />
Also 8 Äste mit je 4 Blättern.<br />
Das oberste Element ist der ganze Bildschirm, dessen Äste sollen dann den Bildschirm immer weiter aufteilen.<br />
Ich renn hier irgendwie dauernd gegen eine Wand, ich seh den Ansatz nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050855</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 18 Apr 2011 00:55:59 GMT</pubDate></item><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 01:01:36 GMT]]></title><description><![CDATA[<p>Stackoverflows sind natürlich ein mögliches Problem bei solchen rekursiven Strukturen, aber häufig nicht wirklich, weil die Höhe ja lediglich logarithmisch wächst, was nicht sehr schnell ist.</p>
<p>Dass, was du da baust ist prinzipiell ein Quadtree. Wenn du das bei google suchst findest du so einige Implementierungen davon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050856</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 18 Apr 2011 01:01:36 GMT</pubDate></item><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 01:04:56 GMT]]></title><description><![CDATA[<p>Google hat leider bisher nichts wirklich brauchbares ergeben. Meistens nur Fragen zu speziellen Teilen mit aus dem Zusammenhang gerissenen Snippets.<br />
Und nein, ich meine nicht etwas für den Guttenberg Pattern, sondern einfach ein Tutorial Richtung reiner Quadtree ohne Terraindaten dabei etc. Die meisten die man findet werden gleich auf Terraindaten spezialisiert. Mir fehlt hier aber der Ansatz für C++. Leider. War mit Pointern noch nie besonders gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050857</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 18 Apr 2011 01:04:56 GMT</pubDate></item><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 02:49:59 GMT]]></title><description><![CDATA[<p>Du darfst die Kind-Knoten nicht im Konstruktor anlegen, sondern erst bei Bedarf erzeugen.<br />
So kannst du auch die Tiefe begrenzen.</p>
<p>BTW: Ein Array von 4 Zeigern dynamisch anzulegen halte ich für sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050859</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 18 Apr 2011 02:49:59 GMT</pubDate></item><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 04:06:17 GMT]]></title><description><![CDATA[<p>Du könntest dem Knoten eine Höhe im Konstruktor mitgeben. Den Kindern übergibst du dann Höhe-1. Bei 0 ist ein Blatt erreicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050860</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 18 Apr 2011 04:06:17 GMT</pubDate></item><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 05:24:19 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Du könntest dem Knoten eine Höhe im Konstruktor mitgeben. Den Kindern übergibst du dann Höhe-1. Bei 0 ist ein Blatt erreicht.</p>
</blockquote>
<p>Man könnte auch die Kinder zählen, wenn es nur um die Entscheidung geht, ob es ein Blatt ist <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2050862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050862</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 18 Apr 2011 05:24:19 GMT</pubDate></item><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 05:33:03 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>manni66 schrieb:</p>
<blockquote>
<p>Du könntest dem Knoten eine Höhe im Konstruktor mitgeben. Den Kindern übergibst du dann Höhe-1. Bei 0 ist ein Blatt erreicht.</p>
</blockquote>
<p>Man könnte auch die Kinder zählen, wenn es nur um die Entscheidung geht, ob es ein Blatt ist <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>
</blockquote>
<p>Während man den Baum gerade aufbaut? Das möchte ich sehen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2050865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050865</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 18 Apr 2011 05:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 07:19:56 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Michael E. schrieb:</p>
<blockquote>
<p>Man könnte auch die Kinder zählen, wenn es nur um die Entscheidung geht, ob es ein Blatt ist <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>
</blockquote>
<p>Während man den Baum gerade aufbaut? Das möchte ich sehen <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>
</blockquote>
<p>Tut mir Leid, ich verstehe deine Frage nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050891</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 18 Apr 2011 07:19:56 GMT</pubDate></item><item><title><![CDATA[Reply to Basis eines Trees on Mon, 18 Apr 2011 07:40:56 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Wie schon gesagt. Du legst bei einem Baum die Strukturen nicht an, um sie später zu nutzen, sondern Du legst sie an, sobald Du sie nutzt.</p>
<p>Je nachdem, was in den Baum reinsoll, erzeugst Du alles halt im ctor, z.B. im ctor.</p>
<p>Hast Du beispielsweise einen Binärbaum für mathematische Operationen, so übergibst Du dem ctor einen string. Der ctor verarbeitet diesen und bildet daraus zwei Teilstrings und erstellt darauf basierend die zwei Unterknoten. 2+3+4+3 wird dann z.B. zu 2+3 und 4+3. Und die Wurzel hält dann den op+. Mit Polymorphie für verschiedene Operatoren erzeugt man den Baum dann halt als freie Funktion oder lässt den Wurzelknoten nur als Dummy da stehen.</p>
<p>Wenn Du mehr als ein Kind hast, solltest Du das entweder fixieren oder über vector machen, ich würde nie eine **-Variante verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050902</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Mon, 18 Apr 2011 07:40:56 GMT</pubDate></item></channel></rss>