问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

动态演示汉诺塔算法的实现过程

发布网友 发布时间:2022-05-20 19:40

我来回答

2个回答

热心网友 时间:2023-11-18 08:38

C语言的书上有吧
记的以前学的时候看到过就是那本绿色的书

热心网友 时间:2023-11-18 08:39

// YUNA_2006_7_10
// The way to deal with hannio without digui
#include <iostream>
using namespace std;
#include <malloc.h>

// I will use a stuct to settle the problem
// the struct below is one point of the stuct
struct step
{
int counter; // the number of the disk
int begin; // the begin number
int temper; // the temp number
int end; // the end number
struct step *pre; // the pointer to point before
};

struct step *root = ( step * )malloc( sizeof( step ) ); // this is the end of the stuct

// fucion main begin here
int main()
{
step *temp = ( step * )malloc( sizeof( step ) ); // the temp to put data for temp
step *newstep; // the new step
step *top = root; // top is root in the first
cout << "Input the number of the disc:" << endl; // prompt
cin >> root->counter; // get the number of the disks

root->pre = NULL; // make the root`s data
root->begin = 1;
root->temper = 2;
root->end = 3;

// do part of a do/while
do
{
// when the disks` number is 1
if( top->counter == 1 ){
cout << top->begin << "to" << top->end << endl;
top = top->pre;
continue;
}

// put the top`s data into temp
temp->begin = top->begin;
temp->temper = top->temper;
temp->end = top->end;
temp->counter = top->counter;

// let the top become the first step
top->begin = temp->temper;
top->temper = temp->begin;
top->end = temp->end;
top->counter = temp->counter-1;

// push the secound step
newstep = ( step * )malloc( sizeof( step ) );
newstep->begin = temp->begin;
newstep->temper = temp->temper;
newstep->end = temp->end;
newstep->counter = 1;
newstep->pre = top;
top = newstep;

// push the third step
newstep = ( step * )malloc( sizeof( step ) );
newstep->begin = temp->begin;
newstep->temper = temp->end;
newstep->end = temp->temper;
newstep->counter = temp->counter-1;
newstep->pre = top;
top = newstep;
}while( top != NULL ); // end in top = root->pre

return 0;
} // end main

// 本程序只有一主函数,并没有使用递归

你能把我上面写的这个程序看懂你就知道汉诺塔是怎么动态实现的了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
锅炉切圆直径调整 为什么我打开excel后是灰色的? 有没有什么值得推荐的投资港股的QDII基金? - 知乎 win10电脑屏幕亮度调不了怎么办 考焊工证具体怎么操作 广汽传祺是丰田技术吗 广汽传祺与广汽丰田有关系吗 怎样才能让不愿写作业的孩子听话? 上初中不写作业不想学习的孩子应该如何管教? 出生在2020年农历七月十二日的宝宝怎么取名有内涵? 多哈回合谈判各方呼吁 求汉诺塔c语言动画演示程序 8寸的蛋糕大约要多少钱? 急!Hanoi塔问题的动画演示 我想在北京注册办理个人工作室,个体公司的执照多少钱。 C#汉诺塔动画 手帐的工具在哪买?(新台子的) 安旗蛋糕8英寸多少钱 金字旁上面白下面木什么字 哪个看码高手帮我看看这 正品耐克 詹姆斯11代兵马俑篮球鞋 10代男子LEBRON XI LBJ1 现在的英国首相是谁? 英国第一届首相是谁 英国的历任首相都是谁? 詹姆斯十代和詹姆斯十一代哪个适合打水泥地,去香港买詹姆斯十代的话,大概多少港币,十一代呢? 女人最嫩最水灵的是不是18岁 上届英国首相是谁 生在80后的女人性生活是怎样认识的 看到淘宝有很多卖詹姆斯十一代的只卖一两百。看评价都说好,是真货吗? 我上网看了詹姆斯十一代鸳鸯版、兵马俑版、涂鸦版的要二百多。到了其它所网站要一千多。这是怎么情况?! 詹姆斯十一代涂鸦。 80岁女人还能做几次 在北京开工作室怎么去注册啊,需要多少钱,都交什么费 如何用matlab实现汉诺塔的动画过程? 汉诺塔c语言 动画演示 地址1162765886@qq.com 谁有汉诺塔游戏(带动画)c语言源代码(? 汉诺塔递归问题 用计算机画图要怎么样从最基础的一步步学起? 拇外翻怎样手术治疗 拇外翻的治疗方式有哪些,手术后可能面对什么风险,需要注意什么问题? 拇外翻的治疗方法有哪些? 法拍房有房本可以公积金贷款吗? 买的有房本的旧房能用住房公积金贷款吗?手续复杂吗? 治疗拇外翻比较好方法有什么? 拇外翻整形手术的特点有哪些呢 我想用房本一次性贷款住房公积金! 竹笋怎么剥剥到什么程度 毛竹笋怎么剥视频 中国“天问一号”即将飞往火星,这对我国航天会带来怎样的影响? 灵芝和什么搭配泡水喝治咳嗽 第一个环绕火星的太空船叫什么? 想注销支付宝账号,显示当前账号存在争议,无法注销,是什么情况?存在争议是包括哪方面?