C# :: Aufgabe #66 :: Lösung #3

3 Lösungen Lösungen öffentlich
#66

Türme von Hanoi - Lösung

Fortgeschrittener - C# von bibir - 05.09.2014 um 11:28 Uhr
Programmiere die Lösung der Türme von Hanoi.
Dabei ist es Ausreichend, die zu tätigenden Schritte textuell auszugeben
#3
vote_ok
von Mexx (2370 Punkte) - 19.09.2014 um 15:51 Uhr
Hier mit rekursiv aufgerufener Move-Funktion. Die Türme wurden durch drei Stacks simuliert.

Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Türme_von_Hanoi
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack<int> turmA = new Stack<int>(7);
            Stack<int> turmB = new Stack<int>(7);
            Stack<int> turmC = new Stack<int>(7);

            // TurmA initialisieren (mit Scheiben bestücken, wobei 6 die grösste und 0 die kleinste darstellt)
            for (int i = 6; i >= 0; i--)
            {
                turmA.Push(i);
            }

            MoveDisk(7, ref turmA, ref turmB, ref turmC);
        }

        static void MoveDisk(int disk, ref Stack<int> a, ref Stack<int> b, ref Stack<int> c)
        {
            if (disk > 0)
            {
                MoveDisk(disk - 1, ref a, ref c, ref b);
                c.Push(a.Pop());
                MoveDisk(disk - 1, ref b, ref a, ref c);
            }
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben