递归解决Hanoi汉诺塔

汉诺塔,一个古老的问题,递归算法,在讲栈数据结构加深理解的例子.今天重新回顾了一下.


import std.stdio;

int mc=0;

void move(char x,int n,char z)
{
  printf("%i Move disk %i from %c to %c \n",++mc,n,x,z);
}

void hanoi(int n,char x,char y,char z)
{
  if(n==1)
    move(x,1,z);
  else{
    hanoi(n-1,x,z,y); 
    move(x,n,z);
    hanoi(n-1,y,x,z);    
  }
}

void main()
{
  hanoi(10,'a','b','c');
  //writefln("OK");
  return;
}

你可能感兴趣的:(数据结构,C++,c,算法,C#)