<?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[Binärer Suchbaum - Strukturierte Ausgabe]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>ich habe einen binären Suchbaum programmiert und möchte diesen nun auf folgende Weise ausgeben:<br />
Zunächst wird der Wert der Wurzel ausgegeben. Hat ein Knoten einen linken oder rechten Teilbaum, so wird nach dem Wert des Knotens das Symbol &quot;(&quot; ausgegeben.<br />
In der Klammer wird nun zunächst der linke Teilbaum ausgegeben, gefolgt vom Symbol &quot;,&quot; und anschließend der rechte Teilbaum, gefolgt vom Symbol &quot;)&quot;.</p>
<p>Als Beispiel:<br />
Wenn ich nacheinander die Werte 7, 1, 3, 8, 2, 9, 5, 4, 6, 0 in einen Baum einfüge und diesen anschließend ausgebe, sollte die Ausgabe folgender Weise aussehen: 7(1(0,3(2,5(4,6))),8(,9))</p>
<p>Dass die Werte in der richtigen Reihenfolge dastehen und die &quot;(&quot; Klammern bekomme ich hin, aber mit den Kommata und den &quot;)&quot; Klammern komme ich nicht zurecht. Ich habe davon immer zuviele oder zuwenige in meiner Ausgabe. Ich dachte daher, dass ich die Ausgabe an eine if-Bedingung knüpfe, aber auch das will mir nicht gelingen, da ich nicht wirklich weiß, wie ich diese richtig formulieren muss.<br />
Mein Code sieht so aus:</p>
<pre><code>// Definition der Struktur eines Knotens
struct Node
{
    int value; // Knotenwert
    Node* left; // linker Teilbaum
    Node* right; // rechter Teilbaum
};

// Ausgabe der Baumstruktur
void PrintTree(Node* root) {
    if (root == 0) {
        return;
    };
    cout &lt;&lt; root -&gt; value;
    if (root -&gt; left != 0 || root -&gt; right != 0) 
        cout &lt;&lt; &quot;(&quot;;
    PrintTree(root -&gt; left);
    if (root -&gt; left == 0) 
        cout &lt;&lt; &quot;,&quot;;
    PrintTree(root -&gt; right);
    if (root -&gt; right == 0) 
        cout &lt;&lt; &quot;)&quot;;
}
</code></pre>
<p>Ich bin für jeden Hinweis dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/329948/binärer-suchbaum-strukturierte-ausgabe</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 18:51:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329948.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Dec 2014 17:16:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Binärer Suchbaum - Strukturierte Ausgabe on Mon, 15 Dec 2014 17:16:11 GMT]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>ich habe einen binären Suchbaum programmiert und möchte diesen nun auf folgende Weise ausgeben:<br />
Zunächst wird der Wert der Wurzel ausgegeben. Hat ein Knoten einen linken oder rechten Teilbaum, so wird nach dem Wert des Knotens das Symbol &quot;(&quot; ausgegeben.<br />
In der Klammer wird nun zunächst der linke Teilbaum ausgegeben, gefolgt vom Symbol &quot;,&quot; und anschließend der rechte Teilbaum, gefolgt vom Symbol &quot;)&quot;.</p>
<p>Als Beispiel:<br />
Wenn ich nacheinander die Werte 7, 1, 3, 8, 2, 9, 5, 4, 6, 0 in einen Baum einfüge und diesen anschließend ausgebe, sollte die Ausgabe folgender Weise aussehen: 7(1(0,3(2,5(4,6))),8(,9))</p>
<p>Dass die Werte in der richtigen Reihenfolge dastehen und die &quot;(&quot; Klammern bekomme ich hin, aber mit den Kommata und den &quot;)&quot; Klammern komme ich nicht zurecht. Ich habe davon immer zuviele oder zuwenige in meiner Ausgabe. Ich dachte daher, dass ich die Ausgabe an eine if-Bedingung knüpfe, aber auch das will mir nicht gelingen, da ich nicht wirklich weiß, wie ich diese richtig formulieren muss.<br />
Mein Code sieht so aus:</p>
<pre><code>// Definition der Struktur eines Knotens
struct Node
{
    int value; // Knotenwert
    Node* left; // linker Teilbaum
    Node* right; // rechter Teilbaum
};

// Ausgabe der Baumstruktur
void PrintTree(Node* root) {
    if (root == 0) {
        return;
    };
    cout &lt;&lt; root -&gt; value;
    if (root -&gt; left != 0 || root -&gt; right != 0) 
        cout &lt;&lt; &quot;(&quot;;
    PrintTree(root -&gt; left);
    if (root -&gt; left == 0) 
        cout &lt;&lt; &quot;,&quot;;
    PrintTree(root -&gt; right);
    if (root -&gt; right == 0) 
        cout &lt;&lt; &quot;)&quot;;
}
</code></pre>
<p>Ich bin für jeden Hinweis dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433000</guid><dc:creator><![CDATA[ZGWS]]></dc:creator><pubDate>Mon, 15 Dec 2014 17:16:11 GMT</pubDate></item><item><title><![CDATA[Reply to Binärer Suchbaum - Strukturierte Ausgabe on Mon, 15 Dec 2014 18:01:46 GMT]]></title><description><![CDATA[<p>ungetestet, aber idee sollte klar werden:</p>
<pre><code class="language-cpp">void PrintTree(Node* root)
{
  if (root == 0)
    return;

  cout &lt;&lt; root -&gt; value;

  if( root-&gt;left &amp;&amp; root-&gt;right)
  {
    cout &lt;&lt; '(';
    PrintTree( root-&gt;left );
    cout &lt;&lt; ',';
    PrintTree( root-&gt;right );
    cout &lt;&lt; ')';
  }
  else
  { //left / right / nothing
    root* next = root-&gt;left ? root-&gt;left : root-&gt;right;
    if( !next )
      return;

    cout &lt;&lt; '(';
    PrintTree( next );
    cout &lt;&lt; ')';
  }
}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433010</guid><dc:creator><![CDATA[un_skilled]]></dc:creator><pubDate>Mon, 15 Dec 2014 18:01:46 GMT</pubDate></item><item><title><![CDATA[Reply to Binärer Suchbaum - Strukturierte Ausgabe on Mon, 15 Dec 2014 18:50:38 GMT]]></title><description><![CDATA[<p>Super! Besten Dank <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/2433023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433023</guid><dc:creator><![CDATA[ZGWS]]></dc:creator><pubDate>Mon, 15 Dec 2014 18:50:38 GMT</pubDate></item></channel></rss>