<?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[Baum]]></title><description><![CDATA[<p>Hallo miteinander!</p>
<p>Ich habe eine Frage: Wenn man zwei Argumente hat: root_ und level_ , wie &quot;baut&quot; man dann mit diesen Informationen einen Baum?</p>
<pre><code class="language-cpp">void
epidemic::build_tree(person* root_, unsigned int level_)
{
//...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/285237/baum</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 10:27:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285237.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 16 Apr 2011 18:51:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 18:51:31 GMT]]></title><description><![CDATA[<p>Hallo miteinander!</p>
<p>Ich habe eine Frage: Wenn man zwei Argumente hat: root_ und level_ , wie &quot;baut&quot; man dann mit diesen Informationen einen Baum?</p>
<pre><code class="language-cpp">void
epidemic::build_tree(person* root_, unsigned int level_)
{
//...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2050278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050278</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 18:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 18:54:51 GMT]]></title><description><![CDATA[<p>Gegenfrage: Was soll diese Funktion <strong>inhaltlich</strong> bewirken? Es gibt zu viele Möglichkeiten, Bäume zu bauen, als daß wir mit diesen Informationen etwas ausrichten können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050281</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 18:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 18:57:51 GMT]]></title><description><![CDATA[<p>Der Baum soll einfach bis zum definierten level &quot;bevölkert&quot; werden.<br />
(mit allen Blattknoten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050282</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 18:57:51 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 19:04:59 GMT]]></title><description><![CDATA[<p>Und wie breit soll der Baum werden?</p>
<p>Ein Ansatz: erzeuge genug person-Objekte als Nachfolger des übergebenen root und wende auf jeden davon rekursiv <code>build_tree(child,level_-1);</code> auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050287</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 19:04:59 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 19:07:17 GMT]]></title><description><![CDATA[<p>LeoK schrieb:</p>
<blockquote>
<p>Der Baum soll einfach bis zum definierten level &quot;bevölkert&quot; werden.<br />
(mit allen Blattknoten).</p>
</blockquote>
<p>Na, wiederhol das doch mit <code>std::pow(2, _level)</code> Blättern. Ich würde es rekursiv lösen, da das hier gut geht. Unter der Annahme, dass es sich hier um einen binären Baum handelt. Der Threadersteller ist sehr diskret.</p>
<p>EDIT: CStoll war schneller.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050289</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 16 Apr 2011 19:07:17 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 19:12:06 GMT]]></title><description><![CDATA[<p>Das Problem ist eben, dass es sich um ein quad-tree (also ein Baum mit 4 Nachfolgern) handelt. Aber die Idee mit dem rekursiven Aufruf kann dann trotzdem angewendet werden, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050295</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 19:12:06 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 19:17:31 GMT]]></title><description><![CDATA[<p>LeoK schrieb:</p>
<blockquote>
<p>Das Problem ist eben, dass es sich um ein quad-tree (also ein Baum mit 4 Nachfolgern) handelt.</p>
</blockquote>
<p>Dann gehst pflanzt du eben <code>std::pow(4, level_)</code> Blätter an.</p>
<p>LeoK schrieb:</p>
<blockquote>
<p>Aber die Idee mit dem rekursiven Aufruf kann dann trotzdem angewendet werden, oder?</p>
</blockquote>
<p>Natürlich, Rekursion ist eine allgemeine Technik.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050299</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 16 Apr 2011 19:17:31 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 19:38:26 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p><code>std::pow(2, _level)</code></p>
</blockquote>
<p>Warum nicht <code>1 &lt;&lt; _level</code> ?</p>
<p>EOutOfResources schrieb:</p>
<blockquote>
<p><code>std::pow(4, level_)</code></p>
</blockquote>
<p>Warum nicht <code>4 &lt;&lt; level_</code> ?</p>
<p>Warum nicht <code>_6 &lt;&lt; level</code> ?</p>
<p>Warum nicht <code>8_ &lt;&lt; level</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050304</guid><dc:creator><![CDATA[hedontgetit]]></dc:creator><pubDate>Sat, 16 Apr 2011 19:38:26 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 19:42:55 GMT]]></title><description><![CDATA[<p>hedontgetit schrieb:</p>
<blockquote>
<p>EOutOfResources schrieb:</p>
<blockquote>
<p><code>std::pow(2, _level)</code></p>
</blockquote>
<p>Warum nicht <code>1 &lt;&lt; _level</code> ?</p>
<p>EOutOfResources schrieb:</p>
<blockquote>
<p><code>std::pow(4, level_)</code></p>
</blockquote>
<p>Warum nicht <code>4 &lt;&lt; level_</code> ?</p>
<p>Warum nicht <code>_6 &lt;&lt; level</code> ?</p>
<p>Warum nicht <code>8_ &lt;&lt; level</code> ?</p>
</blockquote>
<p>Bei den Zweierpotenzen mag die Äquivalenz noch gültig sein, aber allgemeine Potenzierung funktioniert nicht so einfach per Bitshift (davon abgesehen mußt du diese Anzahl gar nicht explizit ausrechnen - jeder Knoten der vorletzten Ebene legt 4 (oder n) Blätter an, die höheren Knoten entsprechend jeweils 4 innere Knoten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050306</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 19:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 19:54:24 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: natürlich geht das so nicht, aber das war gar nicht meine Aussage.</p>
<p>Ich habe nur versucht, mich auf das niedere Niveau von EOutOfLesources herabzugeben um damit zu zeigen, wie wenig er vom Problem versteht und wie unnötig seine Berechnungen sind.</p>
<p>Man sollte es nämlich so machen, wie du mit deinem zweiten Post. Der ganze Rest ist zum vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050310</guid><dc:creator><![CDATA[hedontgetit]]></dc:creator><pubDate>Sat, 16 Apr 2011 19:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 19:59:56 GMT]]></title><description><![CDATA[<p>hedontgetit schrieb:</p>
<blockquote>
<p>wie unnötig seine Berechnungen sind.</p>
</blockquote>
<p>Die waren zur Veranschaulichung. Hätte ich 2^foo geschrieben, hätte man an den XOR-Operator gedacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050317</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 16 Apr 2011 19:59:56 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 20:09:59 GMT]]></title><description><![CDATA[<p>Niemand zwingt dich, nicht das dafür gedachte Hoch-Tag zu verwenden, etwas wie 2<sup>foo</sup> (BB-Code: <code>2[h]</code>  <code>foo[/</code>  <code>h]</code> ) wäre unmissverständlich.<br />
Bei noch korrekt ausgeschriebenem <code>std::pow(2, foo)</code> denkt man doch sofort an C-like-C++-Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050321</guid><dc:creator><![CDATA[hedontgetit]]></dc:creator><pubDate>Sat, 16 Apr 2011 20:09:59 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 20:42:17 GMT]]></title><description><![CDATA[<p>hedontgetit schrieb:</p>
<blockquote>
<p>Niemand zwingt dich, nicht das dafür gedachte Hoch-Tag zu verwenden</p>
</blockquote>
<p>Stimmt. Werde ich mir für das nächste Mal merken.</p>
<p>hedontgetit schrieb:</p>
<blockquote>
<p>C-like-C++-Code.</p>
</blockquote>
<p>Wie potenzierst du denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050324</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 16 Apr 2011 20:42:17 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 20:24:22 GMT]]></title><description><![CDATA[<p>Ich bin etwas verwirrt.<br />
Also kann ich's nicht einfach so machen?</p>
<pre><code>build_tree(std::pow(4, level_), level_-1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2050328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050328</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 20:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 20:30:12 GMT]]></title><description><![CDATA[<p>Schon weil du bei dem Aufruf gar nicht angeben kannst, wo die Wurzel dieses Teilbaumes liegt. Wie ich schon sagte, die Lösung liegt in der Rekursion - du legst vier neue Objekte an, hängst sie als Nachfolger in dein root-Objekt und lässt dann die build_tree()-Funktion auf jede davon los.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/25179">@EOutOfResources</a> und hedontgetit: Habt ihr nun geklärt, wie man Potenzen schreiben sollte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050332</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 20:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 20:40:48 GMT]]></title><description><![CDATA[<p>Wie meinst du &quot;hängst sie als Nachfolger in dein root-Objekt &quot; konkret?<br />
Also ich weiss, was du meinst. Allerdings bring ich das codemässig nicht hin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050338</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 20:40:48 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 20:45:24 GMT]]></title><description><![CDATA[<p>Du müsstest irgendwo in der person-Klasse/Struct einige Elemente haben, die die Kinder darstellen (da du uns die Definition nicht genannt hast, kann ich nur raten). Mit &quot;einhängen&quot; meinte ich, die neu erzeugten Objekte dort unterzubringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050340</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 20:45:24 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 21:13:05 GMT]]></title><description><![CDATA[<p>Hmm..ich kann &quot;nur&quot; neue Personen machen, ob die dann &quot;children&quot; sind, weiss man nicht...</p>
<pre><code class="language-cpp">#ifndef __PERSON__
#define __PERSON__

// Task1
#include &quot;common.hpp&quot;
#include &quot;../../../shared/array.hpp&quot;
// STL
#include &lt;vector&gt;

class person 
{

    public:
        /**
        * @brief construct a new person with the specified id
        * @param  id_   id of the new person
        */
        person(unsigned int id_);

        /**
        * @brief getter of the id of the person
        * @return int   return the id of the person
        */
        int
        get_id(void) const;

        /**
        * @brief retrieve the n-th children of the current node
        *        (range from 0 to 3).
        * @param    index_    index of the child to access
        * @return   person*   the actual child
        */
        person*
        get_person_at_risk(unsigned int index_);

        /**
        * @brief add a new person at the defined position.
        * @param index_           (range from 0 to 3)
        * @param new_person_      the new person to add
        */
        void
        set_person_at_risk(person* new_person_, unsigned int index_);

        /**
        * @brief checks if the node is infected or not
        * @return bool    true if the node is infected, false otherwise
        */
        bool
        is_infected(void) const;

        /**
        * @brief set the infection of the person
        * @param status_    the new infection status
        */
        void
        set_infected(bool status_);

        /**
        * @brief print the node's information
        */
        void
        print(void);

    private:
        /* Children nodes */
        array&lt;person*, MAX_CHILDREN&gt; _people_at_risk;

        /* ID of the person */
        const unsigned int _id;

        /* Infection status */
        bool _infected;
};

#endif  // __PERSON__
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2050351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050351</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 21:13:05 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 21:21:09 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">/** 
        * @brief add a new person at the defined position. 
        * @param index_           (range from 0 to 3) 
        * @param new_person_      the new person to add 
        */ 
        void 
        set_person_at_risk(person* new_person_, unsigned int index_);
</code></pre>
</blockquote>
<p>das klingt doch genau nach der Methode, die du dafür benötigst <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/2050356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050356</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 21:21:09 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 21:36:40 GMT]]></title><description><![CDATA[<p>Also meinst du das in der Art (noch nicht vollständig):</p>
<pre><code class="language-cpp">person* p1;
	p1-&gt;set_person_at_risk(p1, 0);
	person* p2;
	p2-&gt;set_person_at_risk(p2, 1);

	build_tree(p1,level_);
</code></pre>
<p>..ich bin mir bzgl. den Argumenten nicht sicher..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050363</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 21:36:40 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 21:43:20 GMT]]></title><description><![CDATA[<p>Der Ansatz ist zu erkennen, allerdings zeigen deine Zeiger noch ins Nirvana. Du solltest auch echte Objekte erzeugen (z.B. mit new).</p>
<p>PS: Und ich würde eine Schleife verwenden - das erspart Schreibarbeit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050366</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 21:43:20 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 22:02:39 GMT]]></title><description><![CDATA[<p>Ok, habe nun das:</p>
<pre><code class="language-cpp">for(int i=0; i&lt;4; ++i)
	{
		person(i)* p(i) = new person*;
		p(i)-&gt;set_person_at_risk(p(i), i);
		build_tree(p(i), level_);
	}
</code></pre>
<p>..allerdings stimmt bei der ersten Zeile in der for-Schleife (mit new) etwas nicht, oder? (was? :S)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050368</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 22:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 22:10:03 GMT]]></title><description><![CDATA[<p>die ganzen (i) sind überflüssig (und höchstwahrscheinlich syntaktisch fehlerhaft), außerdem ist am Ende der new-Zeile ein * zu viel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050369</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 22:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to Baum on Sat, 16 Apr 2011 22:18:07 GMT]]></title><description><![CDATA[<p>Stimmt, dafür sollte es eigentli new person(i); heissen, weil person kein Standardkonstruktor hat.<br />
Sonst stimmt's aber mit den Methodenaufrufen und allem, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050370</guid><dc:creator><![CDATA[LeoK]]></dc:creator><pubDate>Sat, 16 Apr 2011 22:18:07 GMT</pubDate></item></channel></rss>