<?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[Binary Tree]]></title><description><![CDATA[<p>Hallo miteinander!</p>
<p>Wenn man einen binary tree mit mathematischen Operationen hat, wie könnte dann zum Beispiel bei multiplication_node die compute() und die evaluate()-Methode aussehen, wenn das hpp-file folgendes ist?:</p>
<pre><code class="language-cpp">#ifndef MULTIPLICATION_NODE_HPP
#define MULTIPLICATION_NODE_HPP

#include &quot;arithmetic_node.hpp&quot;

class multiplication_node : public arithmetic_node
{
    public:
        virtual float compute() const;
        virtual std::string expression() const;
};

#endif
</code></pre>
<p>Liebe Grüsse,<br />
Max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285218/binary-tree</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 09:42:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285218.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 16 Apr 2011 12:57:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 12:57:16 GMT]]></title><description><![CDATA[<p>Hallo miteinander!</p>
<p>Wenn man einen binary tree mit mathematischen Operationen hat, wie könnte dann zum Beispiel bei multiplication_node die compute() und die evaluate()-Methode aussehen, wenn das hpp-file folgendes ist?:</p>
<pre><code class="language-cpp">#ifndef MULTIPLICATION_NODE_HPP
#define MULTIPLICATION_NODE_HPP

#include &quot;arithmetic_node.hpp&quot;

class multiplication_node : public arithmetic_node
{
    public:
        virtual float compute() const;
        virtual std::string expression() const;
};

#endif
</code></pre>
<p>Liebe Grüsse,<br />
Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050164</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 12:57:16 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 12:59:41 GMT]]></title><description><![CDATA[<p>was ist denn ein binärbaum mit mathematischen operationen??</p>
<p>das zusammenrechnen von allen elementen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050165</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sat, 16 Apr 2011 12:59:41 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 13:04:10 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>was ist denn ein binärbaum mit mathematischen operationen??</p>
</blockquote>
<p>Du kannst Bäume nicht nur zum Suchen verwenden, sondern auch als Syntaxbaum zur Darstellung von arithmetischen Ausdrücken <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1044">@Max</a>: Wie würdest du den Wert eines Produktes denn manuell angeben? Genauso kannst du das auch im Programm erledigen. Den Wert der Faktoren holst du dir, indem du (rekursiv) die beiden Kinder danach fragst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050167</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 13:04:10 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 13:42:58 GMT]]></title><description><![CDATA[<p>Okey, also ich multipliziere in der compute()-Methode die Kinder miteinander - was aber soll die expressions()-Methode? :S</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050173</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 13:42:58 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 13:43:02 GMT]]></title><description><![CDATA[<p>achso, das meint er</p>
<p>ok... schon klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050174</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sat, 16 Apr 2011 13:43:02 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 13:52:39 GMT]]></title><description><![CDATA[<p>MaxC++ schrieb:</p>
<blockquote>
<p>Okey, also ich multipliziere in der compute()-Methode die Kinder miteinander - was aber soll die expressions()-Methode? :S</p>
</blockquote>
<p>Wenn ich raten müsste, würde ich sagen: Den berechneten Ausdruck in Textform (d.h. als &quot;faktor1 * faktor2&quot; darstellen. Die Aufgabe solltest du eigentlich auf dies selbe Weise lösen können wie die Berechnung - die Teilausdrücke der Faktoren holen und daraus deinen eigenen Ausdruck zusammenbauen. Du mußt nur darauf achten, daß du nicht mit der &quot;natürlichen&quot; Operator-Rangfolge (Punktrechnung vor Strichrechnung) in Konflikt kommst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050176</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 13:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 14:17:21 GMT]]></title><description><![CDATA[<p>Ah, also kann man unter &quot;expression&quot; einfach das Berechnete in Textform ausgegben - guuut <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Zur compute()-Methode: Kann ich das nicht &quot;einfach&quot; so machen:</p>
<pre><code>float multiplication_node::compute() const
{
    return _left-&gt;compute() * _right-&gt;compute();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2050180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050180</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 14:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 14:25:38 GMT]]></title><description><![CDATA[<p>MaxC++ schrieb:</p>
<blockquote>
<p>Ah, also kann man unter &quot;expression&quot; einfach das Berechnete in Textform ausgegben - guuut <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Ich kenne zwar deine Anforderungen nicht, aber vermutlich sollst du eher die Rechenvorschrift ausgeben als das Ergebnis des compute()-Aufrufes.</p>
<blockquote>
<p>Zur compute()-Methode: Kann ich das nicht &quot;einfach&quot; so machen:</p>
<pre><code>float multiplication_node::compute() const
{
    return _left-&gt;compute() * _right-&gt;compute();
}
</code></pre>
</blockquote>
<p>Klar, so hätte ich es auch gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050182</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 14:25:38 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 14:43:02 GMT]]></title><description><![CDATA[<p>Super <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>..zu 1: Also nicht sowas?</p>
<pre><code>return std::string(_left-&gt;compute() + &quot; * &quot; + _right-&gt;compute());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2050186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050186</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 14:43:02 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 14:50:30 GMT]]></title><description><![CDATA[<p>Nicht ganz - aber die Kind-Knoten sollten doch auch eine expression)-Methode anbieten.</p>
<p>PS: Und ich würde lieber zu viele Klammern setzen als zu wenige - (1+2)*3 ist etwas anderes als 1+2*3</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050187</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 14:50:30 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 15:03:11 GMT]]></title><description><![CDATA[<p>Ahh <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="😃"
    /><br />
Alles klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Noch eine Schlussfrage: Ich habe noch ein arithmetic_tree file, das die Methoden evaluate() und expression() enthält. Expression() ist mir nun klar, aber was soll die evaluate()-Methode machen?</p>
<p>Zudem habe ich noch ein value_node-file, das die Methode compute() enthält. Doch was soll die noch &quot;computen&quot;? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050189</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 15:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 15:13:09 GMT]]></title><description><![CDATA[<p>Was diese Methoden tatsächlich machen <strong>sollen</strong>, dürfte eigentlich in deiner Aufgabenstellung stehen. Ich kann hier nur auf Basis der Namen Vermutungen anstellen.</p>
<p>MaxC++ schrieb:</p>
<blockquote>
<p>Noch eine Schlussfrage: Ich habe noch ein arithmetic_tree file, das die Methoden evaluate() und expression() enthält. Expression() ist mir nun klar, aber was soll die evaluate()-Methode machen?</p>
</blockquote>
<p>Den Wert bzw. Ausdruck des Gesamtbaumes zurückgeben (d.h. ein Aufruf von root-&gt;compute()</p>
<blockquote>
<p>Zudem habe ich noch ein value_node-file, das die Methode compute() enthält. Doch was soll die noch &quot;computen&quot;? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Im Sinne der Polymorphie könnte einer der beiden Kindknoten deines multiplication_node so ein value_node sein, also brauchst du die selben Methoden, damit der rekursive Aufruf _left-&gt;compute() bzw. _right-&gt;compute() aufgelöst werden kann. Jetzt mußt du dich nur noch fragen, wie du den Wert z.B. der Zahl 7 berechnen würdest <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/2050192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050192</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 15:13:09 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 15:42:57 GMT]]></title><description><![CDATA[<p>Ich habs nun mal so gemacht:</p>
<pre><code>return _left-&gt;compute() * _right-&gt;compute() + _value;
</code></pre>
<p>..aber ist das wirklick korrekt?<br />
So würde ich einfach annehmen, dass _value der &quot;Rest&quot; ist..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050202</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 15:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 15:50:10 GMT]]></title><description><![CDATA[<p>Nein, der value_node dürfte für die Blätter in deinem Rechenbaum stehen - da sollten beide Kindknoten mit NULL belegt sein und du hast nur den (im Knoten selbst untergebrachten) Wert.</p>
<p>(PS: nur zur Übung, ob du es verstanden hast: Wie würdest du die addition_node::compute() schreiben?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050204</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 15:50:10 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 15:53:58 GMT]]></title><description><![CDATA[<p>Wie meinst du das konkret?<br />
Muss also nur _value returniert werden?</p>
<p>addition_node::compute() sieht bei mir folgendermassen aus:</p>
<pre><code>return _left-&gt;compute() + _right-&gt;compute();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2050206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050206</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 15:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 15:59:24 GMT]]></title><description><![CDATA[<p>MaxC++ schrieb:</p>
<blockquote>
<p>Wie meinst du das konkret?<br />
Muss also nur _value returniert werden?</p>
</blockquote>
<p>Klar, etwas anderes hast du ja nicht.</p>
<p>(die Addition sieht auch richtig aus)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050209</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 15:59:24 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 16:26:05 GMT]]></title><description><![CDATA[<p>Haha..hast Recht <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>Super, besten Dank!<br />
..allerdings kann ich _value nicht direkt returnieren, da ja ein string erwartet wird. Gibt's da ne Möglichkeit von typecasting?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050221</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 16:26:05 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 16:37:41 GMT]]></title><description><![CDATA[<p>Casten bringt da nichts, aber Typumwandlung ist schon das richtige Stichwort - die Antwort findet sich bei uns im Archiv: <a href="http://www.c-plusplus.net/forum/39488" rel="nofollow">Einmal Zahl nach String und zurück</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050224</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 16 Apr 2011 16:37:41 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Sat, 16 Apr 2011 16:48:10 GMT]]></title><description><![CDATA[<p>Yeah, vielen herzlichen Dank für die Hilfe! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050225</guid><dc:creator><![CDATA[MaxC++]]></dc:creator><pubDate>Sat, 16 Apr 2011 16:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to Binary Tree on Mon, 18 Apr 2011 08:44:00 GMT]]></title><description><![CDATA[<p>Mann sollte left und right noch auf Gültigkeit prüfen, bevor man was mit ihnen anstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050939</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 18 Apr 2011 08:44:00 GMT</pubDate></item></channel></rss>