• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C/C++
  • 标签: C语言  

资源简介

迷宫求解的源码 以一个 m*n 的长方阵表示迷宫,0 和 1 分别表示迷宫中的通路和障碍。设计一个程序,对任意设 定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

资源截图

代码片段和文件信息

#include
#include
#include
int imag[20][20];
int vis[20][20];
//存储走过的路径
int dir[4][2]={{01}{10}{0-1}{-10}};
int mn;
int sxsyexey;
//迷宫起点和终点
typedef struct Node{
    int xydirection;
    }ElementType;
typedef struct SNode{
    ElementType data;
    SNode*next;}SNode*linkstack;
linkstack path;
void initlinkstack(linkstack &L){
     L = (SNode*)malloc(sizeof(SNode));
     L->next=NULL;
     }
void Push(linkstack&LElementType e){
     SNode* p = (SNode*)malloc(sizeof(SNode));
     p->data=e;
     p->next=L->next;
     L->next=p;
     }
void pop(linkstack&L){
    if(L->next==NULL)
        printf(“The linkstack is empty\n“);
    else{
        SNode*p;
        p=L->next;
        L->next=p->next;
        free(p);
    }

}
bool emptylinkStack(linkstack L){
    if(L->next==NULL)
        return true;
    else
        return false;
}
ElementType GetTop(linkstack L){
    if(!emptylinkStack(L)){
        ElementType e;
        SNode *p=L;
        p=L->next;
        e=p->data;
        return e;
    }
    else{
        printf(“The linkstack is empty\n“);
    }

}
void init(){
    printf(“请输入迷宫的行数和列数\n“);
    scanf(“%d %d“&n &m);
    printf(“请输入迷宫\n“);
    int ij;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            scanf(“%d“&imag[i][j]);

}
void Putin(){
    int s1s2e1e2;
    printf(“请输入起点的横纵坐标\n“);
    scanf(“%d %d“&s1 &s2);
    if(s1<1||s1>n||s2<1||s2>m)
    {
        printf(“输入有误请重新输入\n“);
        scanf(“%d %d“&s1 &s2);

评论

共有 条评论