资源简介
供C++初学者参考,代码没什么难度,放网上也可以帮帮人,对初学者有帮助的
代码片段和文件信息
#include
#include
#include
#include
#define STACK_INIT_SIZE 20
#define STACKINCREMENT 10
#define M 10
#define OVERFLOW 0
#define ERROR 0
#define OK 1
typedef struct Qlength
{
int row;//行坐标
int line;//列坐标
}PosType;
typedef struct
{
int ord;//通道块在路径上的序号
PosType seat;//通道块在迷宫中的坐标位置
int di;//从次通道走向下一通道块的方向
}SElemType;
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
int initstack(SqStack &S)
{
S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!S.base) exit(OVERFLOW);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}
int push(SqStack &SSElemType e)
{
if(S.top-S.base>=S.stacksize)//栈满,追加存储空间
{
S.base=(SElemType*)realloc(S.base(S.stacksize+STACKINCREMENT)*sizeof(SElemType));
if(!S.base) exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}
int GetTop(SqStack &SSElemType e)
{
if(S.top==S.base)return ERROR;
e=*(S.top-1);
return OK;
}
int pop(SqStack &SSElemType &a)
{
if(S.top==S.base) return ERROR;
a=*--S.top;
return OK;
}
int StackEmpty(SqStack &S)
{
if(S.top==S.base){
return OK;}
else
return ERROR;
}
int Pass(int maze[M][M]PosType curpos)//判断是否通路
{
if(maze[curpos.row][curpos.line]==0)
return OK;
else
return ERROR;
}
int FootPrint(int maze[M][M]PosType curpos)//通路留下标记
{
return maze[curpos.row][curpos.line]=2;
}
PosType NextPos(PosType curposint di)//向四个方向依次探索
{
PosType curpos1;
switch(di)
{
case 1:
curpos1.row=curpos.row;
curpos1.line=curpos.line+1;
break;
case 2:
curpos1.row=curpos.row+1;
curpos1.line=curpos.line;
break;
case 3:
curpos1.row=curpos.row;
curpos1.line=curpos.line-1;
break;
case 4:
curpos1.row=curpos.row-1;
curpos1.line=curpos.line;
break;
}
return curpos1;
}
void Markprint(int maze[M][M]PosType curpos)//死路留下标记
{
maze[curpos.row][curpos.line]=3;
}
int MazePath(int maze[M][M]PosType startPosType end1SqStack &S)//寻路
{
SElemType e;
PosType curpos;
curpos=start;// 1 1
int cursteps=1;
do{
if(Pass(mazecurpos))//Pass 函数
{
FootPrint(mazecurpos);
e.ord=cursteps;
e.di=1;
e.seat=cu
相关资源
- 数据结构,迷宫问题C语言版源代码
- C语言嵌入式Modbus协议栈,支持主站和
- 走迷宫(自动生成迷宫版本!)
- C语言实现栈操作
- c++迷宫最短路径寻径算法
- OpenGL迷宫山东大学图形学实验三
- C语言自动走迷宫程序代码
- 火烧连营C++版本
- MFC可视化_迷宫算法_最短路径
- 迷宫MFC实现最短路径,有简单界面迷
- 链表栈的基本操作(C语言
- 迷宫益智游戏,c++mfc编写,亲测有效
- C++ 数据结构 迷宫求解
- MFC单文档程序下实现自动随机生成迷
- MFC 编写的迷宫游戏
- opengl做的迷宫游戏,基于C++
- 数据结构C++语言进出堆栈动画
- C# To C++ Converter 17.10.2 (最新破解版
- PJSIP SIP协议栈C语言
- MFC使用双栈实现简单计算器
- Qt实现的迷宫与魔塔游戏 源码迷宫模
- 随机迷宫的形成及迷宫路径查找与输
- mfc 实现迷宫程序
- 迷宫求解MFC
- c++写的迷宫
- MFC实现迷宫搜索——Easy参考
- 数据结构王红梅
- 3D天空迷宫.zip
- 黑马最新c、c++全栈培训第24期高清无
- 黑马程序员最新24期C/C++全栈培训讲义
评论
共有 条评论