正在加载图片...
以退出到迷宫的入口(栈中无元素),则表示此迷宫无路径可通行 (2)程序实现 这里用到一个栈,栈的元素是一个结构。为了方便采用顺序栈。由于数 组maze的每一个位置最多被访问一次,所以至多有m*n个元素放入栈中 因此m*n作为栈的容量大小是个安全的值,但也是一个保守的值。一般取 mn/2即可 define 12/*MD米N2为实际使用迷宫数组的大小*/ define # define maXlen m2/*栈的长度* define True 1 define False o intM=M2-w,N=N2-2;/*M*N为迷宫的大小 typedef struct /*定义栈元素的类型 lint x, y, dir teletype typedef struct /*定义顺序栈* lelemtype stack [MAXLEN] int top I sastkt /*定义方向位移数组对于存储坐标增量的方向位移数组move*/ struct moved lint dx, dy /*初始化迷宫*/ void inimaze (int maze [[N2]) for(i;i=M; i++) J- (num=(800*(j+i)+1500)%327;//根据M和N值产生迷宫 f(mum<150)&&(i!=Mj!N) maze [i][j]= maze[][j]=0 printf(maze[i][j);//显示迷宫 printf(“hn”)以退出到迷宫的入口(栈中无元素),则表示此迷宫无路径可通行。 (2)程序实现 这里用到一个栈,栈的元素是一个结构。为了方便采用顺序栈。由于数 组 maze 的每一个位置最多被访问一次,所以至多有 m*n 个元素放入栈中, 因此 m*n 作为栈的容量大小是个安全的值,但也是一个保守的值。一般取 m*n/2 即可。 # define M2 12 /*M2*N2 为实际使用迷宫数组的大小*/ # define N2 11 # define MAXLEN M2 /*栈的长度*/ # define True 1 # define False 0 # define “stdio.h” int M=M2-w,N=N2-2; /*M*N 为迷宫的大小*/ typedef struct /*定义栈元素的类型*/ {int x,y, dir; }elemtype; typedef struct /*定义顺序栈*/ {elemtype stack[MAXLEN]; int top; }sqstktp; /*定义方向位移数组对于存储坐标增量的方向位移数组 move */ struct moved {int dx,dy; }; /*初始化迷宫*/ void inimaze(int maze[][N2]) {int i,j,num; for(i;i<=M;i++) { for(j=1;i<=n;j++) { num=(800*(j+i)+1500)%327;//根据 M 和 N 值产生迷宫 if((num<150)&&(i!=M||j!=N)) maze[i][j]=1; else maze[i][j]=0; printf(maze[i][j]);//显示迷宫 } printf(“\n”); }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有