编写递归函数实现汉诺塔问题:在移动过程中可以利用B座,要求打印移动的步骤.
问题描述:
编写递归函数实现汉诺塔问题:在移动过程中可以利用B座,要求打印移动的步骤.
汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有n个盘子,盘子大小不等,大的在下,小的在上.有一个和尚想把这n个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上.在移动过程中可以利用B座,要求打印移动的步骤.
答
#include#include#define MaxSize 4typedef int ElemType;typedef struct {\x05ElemType data[MaxSize];\x05int top;char name;}SqStack;void InitStack(SqStack * &s,char b) //初始化栈{\x05s=(SqStack *)malloc(s...