• 大小: 1.43MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-30
  • 语言: C/C++
  • 标签: c++迷宫  

资源简介

c++写的迷宫问题、课程设计、源代码、论文文档

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define INIT_SIZE 100 //存储空间初始分配量
#define INCREMENT 10  //存储空间分配增量
typedef int Status;
typedef struct{       //迷宫中r行c列的位置
         int r;
         int c;
}PostType;
typedef struct{
         int ord;      //当前位置在路径上的序号
         PostType seat;//当前坐标
         int di;       //往下一坐标的方向
}SElemType;        //栈元素类型
typedef struct
{
         SElemType* base;//栈基址构造前销毁后为空
         SElemType* top;//栈顶
         int stackSize;  //栈容量
}Stack;             //栈类型
Status InitStack(Stack &S){  //构造空栈s
         S.base=(SElemType*)malloc(INIT_SIZE *sizeof(SElemType));
         if(!S.base)
                   exit(OVERFLOW);//存储分配失败
         S.top=S.base;
         S.stackSize=INIT_SIZE;
         return OK;
}//InitStack
Status StackEmpty(Stack S){         
//若s为空返回TRUE否则返回FALSE
         if(S.top==S.base)
                   return TRUE;
         return FALSE;
}//StackEmpty
Status Push(Stack &SSElemType e){
 //插入元素e为新的栈顶元素
         if(S.top-S.base >=S.stackSize){//栈满,加空间
                   S.base=(SElemType *)realloc(S.base(S.stackSize+INCREMENT)*sizeof(SElemType));
                   if(!S.base)
                            exit(OVERFLOW);   //存储分配失败
                   S.top=S.base+S.stackSize;
                   S.stackSize+=INCREMENT;
         }
         *S.top++=e;
         return OK;
}//push
Status Pop(Stack &SSElemType &e){//若栈不空删除栈//顶元素用e返回并返回OK,否则返回ERROR
         if(S.top==S.base)
                   return ERROR;
         e=*--S.top;
         return OK;
}//Pop
Status DestroyStack(Stack &S){//销毁栈S
         free(S.base);
         S.top=S.base;
         return OK;
}//DestroyStack

//maze.cpp

#define MAXLEN 10//迷宫包括外墙最大行列数目
typedef struct{
         int r;
         int c;
         char adr[MAXLEN][MAXLEN];//可取‘ ‘1 ‘@‘ 15
}MazeType;   //迷宫类型
Status InitMaze(MazeType &maze){
//初始化迷宫若成功返回TRUE否则返回FALSE
         int mnij;
         printf(“输入迷宫行数和列数: “);
         scanf(“%d%d“&maze.r&maze.c); //迷宫行和列数
         for(i=0;i<=maze.c+1;i++){//迷宫行外墙
                   maze.adr[0][i]=15;
                   maze.adr[maze.r+1][i]=15;
         }//for
         for(i=0;i<=maze.r+1;i++){//迷宫列外墙
                   maze.adr[i][0]=15;
                   maze.adr[i][maze.c+1]=15;
         }
         for(i=1;i<=maze.r;i++)
                   for(j=1;j<=maze.c;j++)
                            maze.adr[i][j]=‘ ‘;//初始化迷宫
do{
printf(“输入障碍的坐标位置(输入(-1,-1)时结束): “);
            scanf(“%d%d“&m&n);//接收障碍的坐标
            if(m>maze.r || n>maze.c)//越界
   { printf(“\n超出迷宫范围啦!!童鞋!\n“);
   continue;}
   maze.adr[m][n]=15;//迷宫障碍用15标记
           } while(m!=-1);//do{}while
   return OK;  
}//InitMaze             
Status Pass(MazeType mazePostType curpos){
//当前位置可通则返回TURE否则返回FALSE
         if(maze.adr[curpos.r][curpos.c]==‘ ‘)//可

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-06-24 14:01  迷宫\
     目录           0  2011-06-24 14:01  迷宫\Debug\
     文件      258094  2011-06-24 12:56  迷宫\Debug\migong.exe
     文件      368556  2011-06-24 12:56  迷宫\Debug\migong.ilk
     文件       24587  2011-06-24 12:56  迷宫\Debug\migong.obj
     文件     1995864  2011-06-24 12:56  迷宫\Debug\migong.pch
     文件      574464  2011-06-24 12:56  迷宫\Debug\migong.pdb
     文件       66560  2011-06-24 12:56  迷宫\Debug\vc60.idb
     文件      102400  2011-06-24 12:56  迷宫\Debug\vc60.pdb
     文件      258093  2011-06-22 12:57  迷宫\Debug\迷宫6.exe
     文件      368720  2011-06-22 12:57  迷宫\Debug\迷宫6.ilk
     文件     1995864  2011-06-22 12:24  迷宫\Debug\迷宫6.pch
     文件      574464  2011-06-22 12:57  迷宫\Debug\迷宫6.pdb
     文件        8793  2011-06-24 12:56  迷宫\migong.cpp
     文件        3401  2011-06-24 11:50  迷宫\migong.dsp
     文件         520  2011-06-24 13:48  迷宫\migong.dsw
     文件       33792  2011-06-24 13:48  迷宫\migong.ncb
     文件       48640  2011-06-24 13:48  迷宫\migong.opt
     文件        1130  2011-06-24 12:56  迷宫\migong.plg
     文件        4273  2011-06-22 13:00  迷宫\迷宫6.dsp
     文件         518  2011-06-22 12:22  迷宫\迷宫6.dsw
     文件       33792  2011-06-22 13:00  迷宫\迷宫6.ncb
     文件       48640  2011-06-22 13:00  迷宫\迷宫6.opt
     文件        1268  2011-06-22 12:57  迷宫\迷宫6.plg
     文件       78848  2013-01-04 09:56  迷宫问题.doc

评论

共有 条评论