<?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[Triple Tree in c++]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
using namespace std;

class Bst
{
	public:

	struct Node
	{
		Node *left;
		Node *right;
		Node *middle;
		char info;
	};

	Bst()
	{
		root = NULL;
	}

	Node rec_insert(char a, Node* tree)
	{
		if(tree == NULL)
		{
			tree = new Node;
			tree-&gt;left = NULL;
			tree-&gt;info = a;
			tree-&gt;right = NULL;
			tree-&gt;middle = NULL;
		}

		else
		{
			if(a &lt; tree-&gt;info)
				*tree-&gt;left = rec_insert(a, tree-&gt;left);
			else if (a &gt; tree-&gt;info)
				*tree-&gt;right = rec_insert(a, tree-&gt;right);
			else 
				*tree-&gt;middle = rec_insert(a, tree-&gt;middle); 
		}
		return *tree;
	}

	void insert(char ding)
	{
		*root = rec_insert(ding,root);
	}

	void traverse()
	{
		rtraverse(root);
	}

	void rtraverse(Node *tree)
	{
		if(tree != NULL)
		{
			visit(tree-&gt;info);
			rtraverse(tree-&gt;left);
			visit(tree-&gt;info);
			rtraverse(tree-&gt;right);
		}

	}

	void visit(char buchstabe)
	{
		cout &lt;&lt; buchstabe;
	}

	private:

	Node *root;

};

void main()
{
	Bst test;

	test.insert('a');
	test.insert('b');
	test.insert('c');

	test.traverse();
}
</code></pre>
<p>Warum gibt diese Programm nichts aus? es sollte doch eigentlich abc ausgeben.<br />
Es ist ein Baum mit max. 3 Nachfolgern, eine rekursive Struktur also.<br />
Wo kann der Fehler liegen??</p>
<p>Ich hoffe auf Hilfe!<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170566/triple-tree-in-c</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 08:00:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170566.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Jan 2007 14:19:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Triple Tree in c++ on Wed, 17 Jan 2007 14:19:20 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
using namespace std;

class Bst
{
	public:

	struct Node
	{
		Node *left;
		Node *right;
		Node *middle;
		char info;
	};

	Bst()
	{
		root = NULL;
	}

	Node rec_insert(char a, Node* tree)
	{
		if(tree == NULL)
		{
			tree = new Node;
			tree-&gt;left = NULL;
			tree-&gt;info = a;
			tree-&gt;right = NULL;
			tree-&gt;middle = NULL;
		}

		else
		{
			if(a &lt; tree-&gt;info)
				*tree-&gt;left = rec_insert(a, tree-&gt;left);
			else if (a &gt; tree-&gt;info)
				*tree-&gt;right = rec_insert(a, tree-&gt;right);
			else 
				*tree-&gt;middle = rec_insert(a, tree-&gt;middle); 
		}
		return *tree;
	}

	void insert(char ding)
	{
		*root = rec_insert(ding,root);
	}

	void traverse()
	{
		rtraverse(root);
	}

	void rtraverse(Node *tree)
	{
		if(tree != NULL)
		{
			visit(tree-&gt;info);
			rtraverse(tree-&gt;left);
			visit(tree-&gt;info);
			rtraverse(tree-&gt;right);
		}

	}

	void visit(char buchstabe)
	{
		cout &lt;&lt; buchstabe;
	}

	private:

	Node *root;

};

void main()
{
	Bst test;

	test.insert('a');
	test.insert('b');
	test.insert('c');

	test.traverse();
}
</code></pre>
<p>Warum gibt diese Programm nichts aus? es sollte doch eigentlich abc ausgeben.<br />
Es ist ein Baum mit max. 3 Nachfolgern, eine rekursive Struktur also.<br />
Wo kann der Fehler liegen??</p>
<p>Ich hoffe auf Hilfe!<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211408</guid><dc:creator><![CDATA[c++Profi]]></dc:creator><pubDate>Wed, 17 Jan 2007 14:19:20 GMT</pubDate></item><item><title><![CDATA[Reply to Triple Tree in c++ on Thu, 18 Jan 2007 07:43:28 GMT]]></title><description><![CDATA[<p>Der Parameter &quot;Node* tree&quot; in der rec_insert() ist eine Kopie des übergebenen Zeigers, also haben die Änderungen am Zeiger keine Auswirkungen auf die übergeordnete Funktion (eventuelle Änderungen an den Daten dahinter haben dagegen schon Auswirkungen, aber so weit kommt es gar nicht erst). Die Lösung nennt sich 'Referenz' und sieht so aus: <code>Node rec_insert(char a,Node*&amp; tree);</code></p>
<p>Übrigens hast du einen inhaltlichen Fehler in der Ausgabe-Methode - du gibst zweimal den Schlüsselwert im aktuellen Knoten aus, aber dafür unterschlägst du den mittleren Nachfolger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211736</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 Jan 2007 07:43:28 GMT</pubDate></item></channel></rss>