c语言用栈输出迷宫所有路径,如何在迷宫中使用到栈
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
#define H 20
#define L 21
#define STACK_INIT_SIZE 400
#define STACKINCREMENT 10
int e;
#define OK 1
#define OVERFLOW 0
#define ERROR 0
typedef int SElemType;
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
struct Position
{ int px;
int py;
}position;
void CreateStack(SqStack *S,SElemType e)
{
S->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!S->base) printf("创建失败") ;
else
{
S->top=S->base;
S->stacksize=STACK_INIT_SIZE;
*(S->top)=e;
S->top++;
}
}
int Push(SqStack *S,SElemType e){
if(S->top-S->base>=S->stacksize)
{
S->base=(SElemType *)realloc(S->base,(S->stacksize+STACKINCREMENT)*sizeof(SElemType));
if(!S->base) return OVERFLOW;
else{
S->stacksize+=STACKINCREMENT;
*(S->top)=e;
S->top++;
return OK;
}
}
else
{*(S->top)=e;
S->top++;
return OK;
}
}
int Pop(SqStack *S,SElemType e)
{
if(S->top==S->base) printf("ERROR");
else
{
e=*--S->top;
return OK;
}
}
FILE *p;
char maze[H][L];
const int dir1[4]={1,0,-1,0},
dir2[4]={0,1,0,-1};
int i,j,x,y;bool found =0;
main()
{void pr(void);
void dir(int i,int j);
if((p=fopen("h:\\maze.txt","r"))==NULL)
{
printf("打不开文件");
exit(0);
}
for(i=0;i
{
for(j=0;j
{
fscanf(p,"%c",&maze[i][j]);
if(maze[i][j]=='S')
{
x=i;
y=j;
}
}
}
dir(x,y);
return 0;
}
void pr(void)
{
for(i=0;i
{
for(j=0;j
{
printf("%c",maze[i][j]);
}
}
}
void dir(int x,int y)
{
int k;
SqStack stack,*S;
S=&stack;
position.px=x;
position.py=y;
CreateStack(S,position);
if(maze[i][j]!='E')
{
for(k=0;k<4;k++)
if(x +dir1[k]>=0 && y+dir1[k]=0 && y+dir2[k]
{maze[x+dir1[k]][y+dir2[k]]='@';
pr();
Sleep(100);
system("cls");
dir(x+dir1[k],y+dir2[k]);
}
}
}
目前程序就是把迷宫所有路径替换成@而已 没有真正实现一条路
想加入栈 让那种走不通的路不显示
但是老是提示不正确
c语言用栈输出迷宫所有路径,如何在迷宫中使用到栈相关推荐
- php栈内存和堆内存的区别,内存中堆和栈的区别
堆和栈的区别: · 1> 堆空间的内存是动态分配的,一般存放对象,并且需要手动释放内存. · 2> 栈空间的内存由系统自动分配,一般存放局部变量等,不需要手动管理内存. ...
- python解图片迷宫生成路径_在python中制作迷宫图
嘿,我正在尝试使用Python中的字典制作图表.我正在使用一个包含迷宫的txt文件(b代表路径的墙壁)我正在尝试制作一个字典,列出迷宫中所有可能的移动(简单步骤,而不是完整路径).关于我应该从哪里开始 ...
- C语言反序输出英文句子,C++实现英文句子中的单词逆序输出的方法
本文实例讲述了C++实现英文句子中的单词逆序输出的方法.分享给大家供大家参考,具体如下: #include "stdafx.h" #include #include #includ ...
- 递归和迭代在图遍历中的对比-栈结构
递归和迭代在图遍历中的对比-栈结构 递归和迭代在图遍历中的对比-栈结构 递归和迭代 总结一下 递归和迭代在图遍历中的对比-栈结构 做了两道图遍历相关的题,分别是Leetcode230. Kth Sma ...
- C语言老鼠走迷宫(单路径)算法详细讲解
最近在学习C语言的一些经典算法,其中遇到了一点困难,导致卡进度了.琢磨了很久,在绘制流程图时,突然灵感大开理解了,老鼠走迷宫算法的奇妙.所以写了这个,一来是方便以后右和我类似的同学自学时,遇到这个问题 ...
- 栈-迷宫求解路径问题
//迷宫问题,暴力求解#include"stdio.h"#include"Stack.c"#define MAX_SIZE 100 //迷宫最大规格是100x1 ...
- java怎样找出迷宫中所有路径_Java寻找迷宫路径
问题: /* 用非递归的栈来解决 用类来解决迷宫路径的查找问题,寻找一条从左上角迷宫入口 到右下角迷宫出口的一条有效路径,0代表可以行走,1代表不能行走, 找到,请输入最终的迷宫和路径信息, 找不到, ...
- 栈、队列和数组(包括求解迷宫问题)
1.1 琐碎知识点 栈.队列.数组是线性存储结构,它们都是一段连续的内存空间,其中栈和队列是动态的,而数组是静态的.它们的区别在于: 栈:后进先出,只能在栈顶进行插入和删除操作. 队列:先进先出,只能 ...
- python解图片迷宫生成路径_用Python代码来解图片迷宫的方法整理
译注:原文是StackOverflow上一个如何用程序读取迷宫图片并求解的问题,几位参与者热烈地讨论并给出了自己的代码,涉及到用python对图片的处理以及广度优先(BFS)算法等. 问题by Why ...
最新文章
- leetcode 567. Permutation in String 字符串的排列 滑动窗口法
- hdu 5020 求三点共线的组合数(容器记录斜率出现次数)
- Python 个人的失误记录之str.replace
- xml怎么转换html文件,xml转换成html文件方法
- 【Pytorch神经网络实战案例】07 预测泰坦尼克号上生存的乘客
- 好久没玩laravel了,5.6玩下(三)
- 利用记录型信号量解决不会出现死锁的哲学家就餐问题
- c语言中英文转换器在线转换器,汉英转换器
- Linux下recv函数的使用细节
- 平面纹理坐标和球面坐标互相转换
- 笔记本计算机风扇声音大怎么办,教你怎么从解决笔记本风扇狂转、噪音过大!-电脑风扇声音大怎么办...
- 小球落地c语言编程答案,c语言模拟小球落地
- Android中MVC,MVP和MVVM的区别
- 东北女子参加同学聚会倒地猝死,无人参与急救
- mysql 性能优化,减轻数据库的压力。(减少数据库查询的次数)
- Upload labs
- 常用HTML转义字符
- android快速填表,Android 11将自动填表功能整合到键盘输入建议中
- 配置alexa skill(一)
- html5图书租借系统,图书租赁管理系统