该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#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语言用栈输出迷宫所有路径,如何在迷宫中使用到栈相关推荐

  1. php栈内存和堆内存的区别,内存中堆和栈的区别

    堆和栈的区别: ·      1> 堆空间的内存是动态分配的,一般存放对象,并且需要手动释放内存. ·      2> 栈空间的内存由系统自动分配,一般存放局部变量等,不需要手动管理内存. ...

  2. python解图片迷宫生成路径_在python中制作迷宫图

    嘿,我正在尝试使用Python中的字典制作图表.我正在使用一个包含迷宫的txt文件(b代表路径的墙壁)我正在尝试制作一个字典,列出迷宫中所有可能的移动(简单步骤,而不是完整路径).关于我应该从哪里开始 ...

  3. C语言反序输出英文句子,C++实现英文句子中的单词逆序输出的方法

    本文实例讲述了C++实现英文句子中的单词逆序输出的方法.分享给大家供大家参考,具体如下: #include "stdafx.h" #include #include #includ ...

  4. 递归和迭代在图遍历中的对比-栈结构

    递归和迭代在图遍历中的对比-栈结构 递归和迭代在图遍历中的对比-栈结构 递归和迭代 总结一下 递归和迭代在图遍历中的对比-栈结构 做了两道图遍历相关的题,分别是Leetcode230. Kth Sma ...

  5. C语言老鼠走迷宫(单路径)算法详细讲解

    最近在学习C语言的一些经典算法,其中遇到了一点困难,导致卡进度了.琢磨了很久,在绘制流程图时,突然灵感大开理解了,老鼠走迷宫算法的奇妙.所以写了这个,一来是方便以后右和我类似的同学自学时,遇到这个问题 ...

  6. 栈-迷宫求解路径问题

    //迷宫问题,暴力求解#include"stdio.h"#include"Stack.c"#define MAX_SIZE 100 //迷宫最大规格是100x1 ...

  7. java怎样找出迷宫中所有路径_Java寻找迷宫路径

    问题: /* 用非递归的栈来解决 用类来解决迷宫路径的查找问题,寻找一条从左上角迷宫入口 到右下角迷宫出口的一条有效路径,0代表可以行走,1代表不能行走, 找到,请输入最终的迷宫和路径信息, 找不到, ...

  8. 栈、队列和数组(包括求解迷宫问题)

    1.1 琐碎知识点 栈.队列.数组是线性存储结构,它们都是一段连续的内存空间,其中栈和队列是动态的,而数组是静态的.它们的区别在于: 栈:后进先出,只能在栈顶进行插入和删除操作. 队列:先进先出,只能 ...

  9. python解图片迷宫生成路径_用Python代码来解图片迷宫的方法整理

    译注:原文是StackOverflow上一个如何用程序读取迷宫图片并求解的问题,几位参与者热烈地讨论并给出了自己的代码,涉及到用python对图片的处理以及广度优先(BFS)算法等. 问题by Why ...

最新文章

  1. leetcode 567. Permutation in String 字符串的排列 滑动窗口法
  2. hdu 5020 求三点共线的组合数(容器记录斜率出现次数)
  3. Python 个人的失误记录之str.replace
  4. xml怎么转换html文件,xml转换成html文件方法
  5. 【Pytorch神经网络实战案例】07 预测泰坦尼克号上生存的乘客
  6. 好久没玩laravel了,5.6玩下(三)
  7. 利用记录型信号量解决不会出现死锁的哲学家就餐问题
  8. c语言中英文转换器在线转换器,汉英转换器
  9. Linux下recv函数的使用细节
  10. 平面纹理坐标和球面坐标互相转换
  11. 笔记本计算机风扇声音大怎么办,教你怎么从解决笔记本风扇狂转、噪音过大!-电脑风扇声音大怎么办...
  12. 小球落地c语言编程答案,c语言模拟小球落地
  13. Android中MVC,MVP和MVVM的区别
  14. 东北女子参加同学聚会倒地猝死,无人参与急救
  15. mysql 性能优化,减轻数据库的压力。(减少数据库查询的次数)
  16. Upload labs
  17. 常用HTML转义字符
  18. android快速填表,Android 11将自动填表功能整合到键盘输入建议中
  19. 配置alexa skill(一)
  20. html5图书租借系统,图书租赁管理系统

热门文章

  1. 车萝卜CEO马斌斌:真正自动驾驶的时候你更需要HUD和ARHUD...
  2. mysql为何不支持开窗函数?
  3. postfix 过滤中文内容
  4. 用Remastersys定制自己的Ubuntu安装光盘
  5. 【Python】Python的urllib模、urllib2模块的网络下载文件
  6. 启动tomcat后无法访问
  7. 女方妈妈和男方爸爸这样告诉即将结婚的儿女,写的真好,希望每个人都可以认真的把它看完...
  8. 搭建Docker环境---Docker概述
  9. 解题:洛谷3402 可持久化并查集
  10. Selenium驱动Firefox浏览器