<?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[Rekursions Beseitigung]]></title><description><![CDATA[<p>Hallöle</p>
<p>Ich habe vollgendes Problem eine Rekursion macht bei mir Probleme und verursacht ein Stack Überlauf und meine Frage ist wie kriege ich die Rekursion da raus.<br />
Es geht um einen Binärensuchbaum</p>
<p>Hier der Code</p>
<pre><code>bool baum::vorh(knoten *k, int x)
{
   if (x==k-&gt;out_inhalt())
	   return true;                              //gefunden
   else if (x&lt;k-&gt;out_inhalt())
   {                                             //suche links
       if (k-&gt;out_lsohn()!=0) 
		   return vorh(k-&gt;out_lsohn(),x);
       else
		   return false;
   }
   else
   {                                                         //suche rechts
       if (k-&gt;out_rsohn()!=0) 
		   return vorh(k-&gt;out_rsohn(),x);
       else 
		   return false;
   }    
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/140207/rekursions-beseitigung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 23:14:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140207.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Mar 2006 09:15:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rekursions Beseitigung on Mon, 13 Mar 2006 09:15:58 GMT]]></title><description><![CDATA[<p>Hallöle</p>
<p>Ich habe vollgendes Problem eine Rekursion macht bei mir Probleme und verursacht ein Stack Überlauf und meine Frage ist wie kriege ich die Rekursion da raus.<br />
Es geht um einen Binärensuchbaum</p>
<p>Hier der Code</p>
<pre><code>bool baum::vorh(knoten *k, int x)
{
   if (x==k-&gt;out_inhalt())
	   return true;                              //gefunden
   else if (x&lt;k-&gt;out_inhalt())
   {                                             //suche links
       if (k-&gt;out_lsohn()!=0) 
		   return vorh(k-&gt;out_lsohn(),x);
       else
		   return false;
   }
   else
   {                                                         //suche rechts
       if (k-&gt;out_rsohn()!=0) 
		   return vorh(k-&gt;out_rsohn(),x);
       else 
		   return false;
   }    
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1015050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015050</guid><dc:creator><![CDATA[MANDY]]></dc:creator><pubDate>Mon, 13 Mar 2006 09:15:58 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursions Beseitigung on Mon, 13 Mar 2006 09:32:42 GMT]]></title><description><![CDATA[<p>Du bekommst die Rekursion da raus indem Du den Aufruf von vorh aus vorh herausnimmst.</p>
<p>Das wird aber wohl nicht Dein Problem lösen. Der Code sieht auch an sich i.O. aus (insoweit dass die Rekursion bei einem echten Baum irgendwann terminiert). Ich denke Du musst herausfinden warum in dem Baum zirkuläre Referenzen existieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015058</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 13 Mar 2006 09:32:42 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursions Beseitigung on Mon, 13 Mar 2006 09:45:14 GMT]]></title><description><![CDATA[<p>Hallo nochmal!<br />
So ich habe keine Ahnung wo dieser Fehler ist.<br />
Ich weiss nur das mein Baum bis ca.5000 Elemente richtig funktioniert<br />
und dann durch die Rekursion in vorh eine Owerflow passiert.<br />
Kenn ihr vielleicht ein Iteratives verfahren um den Baum zu durchlaufen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015069</guid><dc:creator><![CDATA[MANDY]]></dc:creator><pubDate>Mon, 13 Mar 2006 09:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursions Beseitigung on Mon, 13 Mar 2006 09:55:09 GMT]]></title><description><![CDATA[<p>Achso, ja dann scheint tatsächlich der Stack zu klein zu sein (dachte zuerst, ein fehlerhafter Baum löst die Rekursion aus).</p>
<p>Im Wesentlichen kannst Du sowas machen um den Baum iterativ zu durchforsten:</p>
<pre><code class="language-cpp">bool baum::vorh(knoten *k, int x)
{
   while (k)
   {
      if (x == k-&gt;out_inhalt()) // gefunden
        return true;

      if (x &lt; k-&gt;out_inhalt)
         k = k-&gt;out_lsohn();
      else
         k = k-&gt;out_rsohn();
   }
   return false;
}
</code></pre>
<p>Also so lange die Söhne durchsuchen bis a) etwas gefunden wurde (springt direkt aus der Schleife heraus) oder b) ein Blatt erreicht wurde (Schleifenbedingung nicht mehr erfüllt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015085</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 13 Mar 2006 09:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursions Beseitigung on Mon, 13 Mar 2006 10:34:12 GMT]]></title><description><![CDATA[<p>Benutze das gleiche Verfahren, aber iterativ formuliert.</p>
<p>Bye, TGGC (<a href="http://tggc.tg.funpic.de/index.php?cat=1&amp;page=8" rel="nofollow">Fakten</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015122</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Mon, 13 Mar 2006 10:34:12 GMT</pubDate></item></channel></rss>