资源简介
供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语言 迷宫问题求解 栈
- A*算法解迷宫
- m×n的长方阵迷宫问题完美求解
- 求解迷宫最短路径算法
- C语言数据结构用队列求解迷宫最短路
- 随机迷宫生成迷宫自动寻路软件VS20
- 整数小数四则运算计算器(C语言版用
- 左手法则c语言程序
- 使用C++实现迷宫游戏
- C语言实现迷宫问题
- 数据结构——迷宫问题
- 迷宫问题数据结构 C++编写
- 迷宫问题的C++算法实现
- 迷宫求解 C++ 完整。。。。。
- 数据结构中用栈实现迷宫问题的c++代
- 利用回溯法解决迷宫问题
- 数据结构 迷宫问题 C++ 栈方法
- c语言 利用学生信息栈实现学生信息单
- 利用C++栈和队列实现回文判断
- 迷宫问题,C语言写的
- C++ 回溯法求解罗密欧与朱丽叶的迷宫
- c++ 获取当前执行位置的调用栈
- Linux TCP IP 协议栈分析.pdf
- 利用队列找出迷宫的最优解
- 基于x86 + linux 的堆栈回溯实验(xos_
- IEEE电脑鼠走迷宫(完整参赛代码)
- 纯c语言迷宫源码.zip
- c语言支持自己创建迷宫,并求解最短
- 开外挂版走迷宫(c++小游戏源码)
- c++ 走迷宫
评论
共有 条评论