솔직히 말해서 : 나는 우리가 마침내 재귀를 본 날까지 연초 (고등학교 고등학교)부터 프로그래밍에 능숙 해왔다. 하노이 타워의 재귀 코드를 이해할 수 없습니다. 목적지 타워와 원점 사이를 전환하는 것만 큼 명확하지 않은 점이 있습니다.나는 하노이 알고리즘을 이해하지 못한다
기본적으로 재귀가 무엇인지, 스택이 무엇인지는 알지만 타워의 순서가 변경된 이유를 이해할 수 없습니다.
도움을 주시면 대단히 감사하겠습니다. 고맙습니다. 조각 하노이의 탑의 규칙에 따라
private void Déplacer(short N, string o, string i, string d)
{
if (N == 1)
{
MessageBox.Show("Move " + o + "to " + d);
lstUn.Items.Add((lstUn.Items.Count + 1).ToString() + "-" + "Move " + o + " vers " + d);
return;
}
else
{
//Switch d and i
Déplacer((short)(N - 1), o, d, i);
lstUn.Items.Add((lstUn.Items.Count + 1).ToString() + "-" + "Déplace " + o + " vers " + d);
MessageBox.Show("Déplace " + o + " vers " + d); //1 vers 3
Déplacer((short)(N - 1), i, o, d);
}
... 그리고이 숙제는 무엇입니까? – Aaron
이것이 C 인 경우 함수 이름에 글리프 'é'를 사용하면 이국적입니다. – unwind
실제로 하노이의 탑을 실제로 해 봤니?모든 것이 중간 스택에서 시작하고 그것을 옮기고 싶다면 왼쪽에 하나의 아이템 스택을 만듭니다. 그런 다음 오른쪽에 두 항목의 스택을 넣은 다음 왼쪽에 세 항목의 스택을 만듭니다. 본질적으로 각 반복을 움직이는 여유 공간을 사용해야합니다. 나는 당신의 코드를주의 깊게 따라하지 않았지만, 이것은 설명이 될 것 같다. – Chris