wlbk.net
当前位置:首页 >> 汉诺塔C语言非递归 >>

汉诺塔C语言非递归

#include #define MAXSTACK 10 /* 栈的最大深度 */ int c = 1; /* 一个全局变量,表示目前移动的步数 */ struct hanoi { /* 存储汉诺塔的结构,包括盘的数目和三个盘的名称 */int n;char x, y, z;}; void move(char x, int n, char y) /* 移动函数,表示把某个

#include #define N 4 int count = 1; int ldx(int, int); void MoveHanoi(int, char, char); void Hanoi(char, char, char); int main() { char a = 'A',b = 'B',c = 'C'; Hanoi(a, b, c); return 0; } int ldx(int a,int x) { int sum = 1; for (; x > 0; x--) { sum *= a; } return sum;

递归算法是我前些天写的,非递归是刚才找的,里面含递归和非递归.递归算法:#include <stdio.h>//递归求汉诺塔问题 void hanoi(int n, char A, char B, char C, int *time) { if (n>=1) { hanoi(n-1, A, C, B, time); move(A, C); (*time)++; hanoi(n-1, B, A, C

int game2()要改为int main()后才可编译运行:#include<stdio.h>#include<stdlib.h> #define CSZL 10 #define FPZL 10 typedef struct hanoi { int n; char x,y,z; }hanoi;typedef struct Stack //定义栈结点 { hanoi *base,*top; int stacksize; }Stack;int

#include#define MAXSTACK 10 /* 栈的最大深度 */int c = 1; /* 一个全局变量,表示目前移动的步数 */struct hanoi { /* 存储汉诺塔的结构,包括盘的数目和三个盘的名称 */

怎么不是递归?void hanoi(int n, char x, char y, char z) { if (1 == n) move(x, 1, z); else { hanoi(n - 1, x, z, y);//这行不就是递归么? move(x, n, z); hanoi(n - 1, y, x, z);//这行也是啊 } } 总体思想就在这里,如果要挪的塌层数不是1个就:把最下面一个上面的塔挪到旁边的上面,然后把最下面的那个诺到要去的地方,然后将挪到旁边的塔挪到目标上.挪最下面那个上面的塔时就用的递归!

#include<stdio.h>void move(int n,char a,char b,char c){ if(n==1) { printf("move disk %d from %c to %c\n",n,a,c); } else { move(n-1,a,c,b); printf("move disk %d from %c to %c\n",n,a,c); move(n-1,b,a,c); }}void main(){ int n; printf("请输入数字n以解决n阶汉诺塔问题:\n"); scanf("%d",&n); move(n,'a','b','c');}

算法介绍: 其实算法非常简单,当盘子的个数为n时,移动的次数应等于2^n - 1(有 下面我们将给出递归和非递归的不同实现源代码. ●汉诺塔算法的递归实现C 源代码

以前写过#include <iostream>using namespace std; //圆盘的个数最多为64 const int MAX = 64; //用来表示每根柱子的信息struct st{ int s[MAX]; //柱子上的圆盘存储情况 int top; //栈顶,用来最上面的圆盘 char name; //柱子的名字,可以是A,

搜索一下吧,知道里面很多的!参考资料: http://zhidao.baidu.com/q?word=%BA%BA%C5%B5%CB%FE&ct=17&pn=0&tn=ikaslist&rn=10非递归先必须确定一个移动的方向,比如A->B->C,或者A->C->B,但这个顺序一旦却确定后就不可以再

网站首页 | 网站地图
All rights reserved Powered by www.wlbk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com