C# :: Aufgabe #66 :: Lösung #3
3 Lösungen
#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
Dabei ist es Ausreichend, die zu tätigenden Schritte textuell auszugeben
#3
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.
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
Seite 1 von 0
1
