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