首页 > 其他 > 详细

数据结构(严蔚敏)3.3栈与递归的实现

时间:2021-05-29 12:15:36      阅读:16      评论:0      收藏:0      [点我收藏+]

学习记录,仅供参考,希望可以指出错误

《1》

技术分享图片

 

技术分享图片

 

 

 《2》

技术分享图片

 

《3》

技术分享图片

 

 技术分享图片

 

 

#include<stdio.h>

//汉诺塔
int c=0; // 全局变量,搬动次数
void move(char x,int n,char z)
{
    // 第n个圆盘从塔座x搬到塔座z
    printf("第%i步: 将%i号盘从%c移到%c\n",++c,n,x,z);
}
// 算法3.5
void hanoi(int n,char x,char y,char z)
{//x为做移动操作的塔座,y为辅助塔座,z为向这上面移动圆盘的塔座。
    // 按规则搬到塔座z上。y可用作辅助塔座
    if(n==1)
        move(x,1,z); // 将编号为1的圆盘从x移到z
    else
    {
        hanoi(n-1,x,z,y); // 将x上编号为1至n-1的圆盘移到y,z作辅助塔
        move(x,n,z); // 将编号为n的圆盘从x移到z
        hanoi(n-1,y,x,z); // 将y上编号为1至n-1的圆盘移到z,x作辅助塔
    }
}

void main()
{
    int n;
    printf("3个塔座为a、b、c,圆盘最初在a座,借助b座移到c座。请输入圆盘数:");
    scanf("%d",&n);
    hanoi(n,a,b,c);
}

 

数据结构(严蔚敏)3.3栈与递归的实现

原文:https://www.cnblogs.com/liuyueshu/p/14824679.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!