<?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[CStoll und Co.: Baum-Iterator fast komplett.. aber noch ein Fehler??]]></title><description><![CDATA[<p>bisher mein code (bishen viel hoffe ihr macht euch die mühe schnell durchzuschaun) in der next methode des iterator stimmt der itrator &quot;pCur-&gt;MyIt&quot; nicht mehr warumm?????</p>
<p>Hab das jetzt bischen anderes gemacht bei der iteration.. müsste eigentlich klappten:</p>
<pre><code class="language-cpp">class node { 
public: 

	std::list&lt;node&gt; children; 
	std::list&lt;node&gt;::iterator MyIt;
	node *pFather;

//	std::list&lt;node&gt;::iterator father; 
	int i;

	node(int k) : i(k)/*, MyIt(children.begin())*/{ 
		//MyIt = children.begin();
	}

	void add(node &amp;oChild){

		oChild.pFather=this;
		children.push_back(oChild);
	}

	bool operator==(const node &amp;A) const {
		return (&amp;A == this) ? true : false;
	}

}; 
class Biterator{

public:
	node *pCur;

	Biterator(node *pStart): pCur(pStart){

		while(!pCur-&gt;children.empty()){
			pCur-&gt;MyIt = pCur-&gt;children.begin();
			pCur= &amp;(*pCur-&gt;MyIt);
		}
	}

	void next(){

		if(!pCur-&gt;children.empty()){
			pCur-&gt;MyIt = pCur-&gt;children.begin();
			pCur= &amp;(pCur-&gt;children.front()); 
		}
		else if(pCur-&gt;pFather &amp;&amp; pCur-&gt;pFather-&gt;MyIt != (--pCur-&gt;pFather-&gt;children.end())){
// HIER STIMMT DER iterator es vater MyIt nich mehr .. warum???
					pCur = &amp;(*(++(pCur-&gt;pFather-&gt;MyIt)));
		}
		else if(pCur-&gt;pFather) {

			do{
				pCur= pCur-&gt;pFather;
			}while(pCur-&gt;pFather-&gt;MyIt == (--(pCur-&gt;pFather-&gt;children.end())));
				pCur = &amp;(*(++(pCur-&gt;pFather-&gt;MyIt)));

		}
	}

};

class Base{

public:

	node oRoot;

	Base() : oRoot(0) {
		oRoot.pFather=NULL;
	}

};
</code></pre>
<p>Oder ist hier wieder ein Denkfehler drin?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186042/cstoll-und-co-baum-iterator-fast-komplett-aber-noch-ein-fehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 06:43:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186042.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Jul 2007 11:24:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CStoll und Co.: Baum-Iterator fast komplett.. aber noch ein Fehler?? on Wed, 04 Jul 2007 11:24:47 GMT]]></title><description><![CDATA[<p>bisher mein code (bishen viel hoffe ihr macht euch die mühe schnell durchzuschaun) in der next methode des iterator stimmt der itrator &quot;pCur-&gt;MyIt&quot; nicht mehr warumm?????</p>
<p>Hab das jetzt bischen anderes gemacht bei der iteration.. müsste eigentlich klappten:</p>
<pre><code class="language-cpp">class node { 
public: 

	std::list&lt;node&gt; children; 
	std::list&lt;node&gt;::iterator MyIt;
	node *pFather;

//	std::list&lt;node&gt;::iterator father; 
	int i;

	node(int k) : i(k)/*, MyIt(children.begin())*/{ 
		//MyIt = children.begin();
	}

	void add(node &amp;oChild){

		oChild.pFather=this;
		children.push_back(oChild);
	}

	bool operator==(const node &amp;A) const {
		return (&amp;A == this) ? true : false;
	}

}; 
class Biterator{

public:
	node *pCur;

	Biterator(node *pStart): pCur(pStart){

		while(!pCur-&gt;children.empty()){
			pCur-&gt;MyIt = pCur-&gt;children.begin();
			pCur= &amp;(*pCur-&gt;MyIt);
		}
	}

	void next(){

		if(!pCur-&gt;children.empty()){
			pCur-&gt;MyIt = pCur-&gt;children.begin();
			pCur= &amp;(pCur-&gt;children.front()); 
		}
		else if(pCur-&gt;pFather &amp;&amp; pCur-&gt;pFather-&gt;MyIt != (--pCur-&gt;pFather-&gt;children.end())){
// HIER STIMMT DER iterator es vater MyIt nich mehr .. warum???
					pCur = &amp;(*(++(pCur-&gt;pFather-&gt;MyIt)));
		}
		else if(pCur-&gt;pFather) {

			do{
				pCur= pCur-&gt;pFather;
			}while(pCur-&gt;pFather-&gt;MyIt == (--(pCur-&gt;pFather-&gt;children.end())));
				pCur = &amp;(*(++(pCur-&gt;pFather-&gt;MyIt)));

		}
	}

};

class Base{

public:

	node oRoot;

	Base() : oRoot(0) {
		oRoot.pFather=NULL;
	}

};
</code></pre>
<p>Oder ist hier wieder ein Denkfehler drin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318130</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 04 Jul 2007 11:24:47 GMT</pubDate></item><item><title><![CDATA[Reply to CStoll und Co.: Baum-Iterator fast komplett.. aber noch ein Fehler?? on Wed, 04 Jul 2007 11:31:49 GMT]]></title><description><![CDATA[<p>Wohin soll denn MyIt zeigen? Dem Namen nach würde ich vermuten, auf die eigene Position aus Sicht des Vaters. Wenn das so ist, hast du dich womöglich mit den Verzweigungen etwas verknotet.</p>
<p>(tip: Mal dir die gesamte Struktur mal auf und schau dir dort an, wohin du eigentlich gehen mußt/willst)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318135</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 04 Jul 2007 11:31:49 GMT</pubDate></item><item><title><![CDATA[Reply to CStoll und Co.: Baum-Iterator fast komplett.. aber noch ein Fehler?? on Wed, 04 Jul 2007 11:47:15 GMT]]></title><description><![CDATA[<p>genau Myit ist die position des Kindes der aktuellen Knotens..</p>
<p>Hab schon 1 Milliarade Baumstruktiren gezeichnet...</p>
<p>schau mal im Kosntruktor des Iterators... die Schleife ist doch korrekt oder nich.. ? Aber irgendowe sind die Iteratoren später kaputt??</p>
<p>pCur = Zeiger auf Startknoten</p>
<pre><code class="language-cpp">while(!pCur-&gt;children.empty()){
  // Knoten (pCur) hat kinder eingener Knoten iterator MyIt auf das erste Kind setzen
  pCur-&gt;MyIt = pCur-&gt;children.begin();
  //Nun zu diesem Kind springen.. 
  pCur= &amp;(*pCur-&gt;MyIt);  

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1318145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318145</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 04 Jul 2007 11:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to CStoll und Co.: Baum-Iterator fast komplett.. aber noch ein Fehler?? on Wed, 04 Jul 2007 11:45:28 GMT]]></title><description><![CDATA[<p>Wie MFK Schon beim letzten Thread schrieb, sollte der Iterator die Baumstruktur nicht ändern (und dazu gehört auch, daß du die Elemente hinter pCur zwar lesen, aber nicht schreiben solltest).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318151</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 04 Jul 2007 11:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to CStoll und Co.: Baum-Iterator fast komplett.. aber noch ein Fehler?? on Wed, 04 Jul 2007 11:48:17 GMT]]></title><description><![CDATA[<p>in dem fall, ist diese Methode der iterieren total mülll... und kann wieder neu anfangen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318153</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 04 Jul 2007 11:48:17 GMT</pubDate></item></channel></rss>