<?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[türme von hanoi mit stack lösen]]></title><description><![CDATA[<p>hallo,</p>
<p>könnte mir jemand weiterhelfen bei der folgenden aufgabe?</p>
<p>Das bekannte Problem der Türme von Hanoi soll mit Hilfe eines Stapels der Container-Klasse stack der Standard Template Library gelöst werden. Der Stapel soll dazu einen Vektor (aus der Container-Klasse vector der Standard Library) aufnehmen der in</p>
<p>- der 1. Komponente die Anzahl der Scheiben aus dem sich der Turm zusammensetzt enthalten. Die Anzahl der Scheiben wird dem Programm über Konsoleneingabe (argv[]) mitgeteilt.<br />
- der 2. Komponente beim Start die Podest-Nr. 1 enthält.<br />
- der 3. Komponente beim Start die Podest-Nr. 2 enthält.<br />
- der 4. Komponente beim Start die Podest-Nr. 3 enthält.</p>
<p>Das weitere Vorgehen zur Lösung des Problems besteht in dem angepassten Vertauschen der Zahlenwerte in den Komponenten des in dem Stapel abzulegenden Vektors.</p>
<p>Gib das zugehörige C++-Programm (nur ein Hauptprogrammabschnitt ist nötig), das die Lösung des Problems Türme von Hanoi realisiert.</p>
<p>danke im voraus</p>
<p>gruß sigint</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/172027/türme-von-hanoi-mit-stack-lösen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 16:07:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172027.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 Jan 2007 16:43:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to türme von hanoi mit stack lösen on Wed, 31 Jan 2007 16:43:50 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>könnte mir jemand weiterhelfen bei der folgenden aufgabe?</p>
<p>Das bekannte Problem der Türme von Hanoi soll mit Hilfe eines Stapels der Container-Klasse stack der Standard Template Library gelöst werden. Der Stapel soll dazu einen Vektor (aus der Container-Klasse vector der Standard Library) aufnehmen der in</p>
<p>- der 1. Komponente die Anzahl der Scheiben aus dem sich der Turm zusammensetzt enthalten. Die Anzahl der Scheiben wird dem Programm über Konsoleneingabe (argv[]) mitgeteilt.<br />
- der 2. Komponente beim Start die Podest-Nr. 1 enthält.<br />
- der 3. Komponente beim Start die Podest-Nr. 2 enthält.<br />
- der 4. Komponente beim Start die Podest-Nr. 3 enthält.</p>
<p>Das weitere Vorgehen zur Lösung des Problems besteht in dem angepassten Vertauschen der Zahlenwerte in den Komponenten des in dem Stapel abzulegenden Vektors.</p>
<p>Gib das zugehörige C++-Programm (nur ein Hauptprogrammabschnitt ist nötig), das die Lösung des Problems Türme von Hanoi realisiert.</p>
<p>danke im voraus</p>
<p>gruß sigint</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220645</guid><dc:creator><![CDATA[sigint]]></dc:creator><pubDate>Wed, 31 Jan 2007 16:43:50 GMT</pubDate></item><item><title><![CDATA[Reply to türme von hanoi mit stack lösen on Wed, 31 Jan 2007 16:52:04 GMT]]></title><description><![CDATA[<p>Wo klemmts denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220649</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Wed, 31 Jan 2007 16:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to türme von hanoi mit stack lösen on Wed, 31 Jan 2007 16:57:41 GMT]]></title><description><![CDATA[<p>ich weiß nicht nach welchem muster ich die elemente ordnen soll, denn rekursiv ist das ohne funktion die sich aufrufen kann ein bisschen komisch. nach welcher reihenfolge soll ich die elemente denn runterpoppen bzw. wieder hochpushen?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220653</guid><dc:creator><![CDATA[sigint]]></dc:creator><pubDate>Wed, 31 Jan 2007 16:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to türme von hanoi mit stack lösen on Wed, 31 Jan 2007 17:43:56 GMT]]></title><description><![CDATA[<p>Du mußt Element 1, Element 2, Element 3 ... pushen<br />
und<br />
... Element 3, Element 2, Element 1 poppen</p>
<p>oder was meinst du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220668</guid><dc:creator><![CDATA[Helfender]]></dc:creator><pubDate>Wed, 31 Jan 2007 17:43:56 GMT</pubDate></item><item><title><![CDATA[Reply to türme von hanoi mit stack lösen on Wed, 31 Jan 2007 17:47:52 GMT]]></title><description><![CDATA[<p>es kommt mir auf die reihenfolge des pushens und poppens an, da liegt mein problem.<br />
hat niemand ein codebeispiel bei der hand?</p>
<p>wäre echt super <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220672</guid><dc:creator><![CDATA[sigint]]></dc:creator><pubDate>Wed, 31 Jan 2007 17:47:52 GMT</pubDate></item><item><title><![CDATA[Reply to türme von hanoi mit stack lösen on Wed, 31 Jan 2007 20:44:07 GMT]]></title><description><![CDATA[<p>könntest du es rekursiv? beim dfunktionsaufruf werden auch nur die parameter auf den stack gepushed und am ende wieder runter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220783</guid><dc:creator><![CDATA[sag mal]]></dc:creator><pubDate>Wed, 31 Jan 2007 20:44:07 GMT</pubDate></item><item><title><![CDATA[Reply to türme von hanoi mit stack lösen on Wed, 31 Jan 2007 22:59:55 GMT]]></title><description><![CDATA[<p>Endlich mal wieder eine kleine interessante Programmieraufgabe .. die Fragestellung ist interessant. Ich kannte das bisher noch nicht.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stack&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;    // swap

const std::size_t VON = 1;
const std::size_t UEBER = 2;
const std::size_t NACH = 3;
const std::size_t ANZ = 0;

int main()
{
    using namespace std;

    vector&lt; int &gt; zug(4);
    zug[VON] = 1; zug[UEBER] = 2; zug[NACH] = 3; // Podest#'n initialisieren
    cout &lt;&lt; &quot;Turm von Hanoi: Bringe den Turm von Podest 1 nach 3&quot; &lt;&lt; endl;;
    cout &lt;&lt; &quot;Anzahl der Scheiben des Turms: &quot;;
    cin &gt;&gt; zug[ANZ];

    // -- lösen
    stack&lt; vector&lt; int &gt; &gt; st;
    if( zug[ANZ] &gt; 0 ) st.push( zug );
    while( !st.empty() )
    {
        zug = st.top();  st.pop(); // Zug vom Stack nehmen
        if( zug[ANZ] == 1 )
            cout &lt;&lt; &quot;Scheibe von &quot; &lt;&lt; zug[VON] &lt;&lt; &quot; nach &quot; &lt;&lt; zug[NACH] &lt;&lt; endl;
        else
        {
            // -- Falls der Turm mehr als eine Scheibe hat, Problem in drei Schritte zerlegen
            // 3.) Turm-1 von 'UEBER' nach 'NACH'
            --zug[ANZ];
            vector&lt; int &gt; tmp = zug;
            swap( tmp[VON], tmp[UEBER] ); 
            st.push( tmp );
            // 2.) 1 Scheibe von 'VON' nach 'NACH'
            tmp = zug;
            tmp[ANZ] = 1; 
            st.push( tmp );
            // 1.) Turm-1 von 'VON' nach 'UEBER'
            tmp = zug;
            swap( tmp[UEBER], tmp[NACH] ); 
            st.push( tmp );
        }
    }
    return 0;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220859</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 31 Jan 2007 22:59:55 GMT</pubDate></item></channel></rss>