麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

棧的應用——迷宮問題

2019-11-11 05:08:46
字體:
來源:轉載
供稿:網友
#include<stdio.h>#define MaxSize 100typedef struct{    int i;    int j;    int di;}Box;typedef struct{    Box date[MaxSize];    int top;}StType;bool mgpath(int mg[10][10],int xi,int yi,int xe,int ye);//求解路徑為;(xi,yi)->(xe,ye)int main(){    int mg[10][10]=    {        {1,1,1,1,1,1,1,1,1,1},        {1,0,0,1,0,0,0,1,0,1},        {1,0,0,1,0,0,0,1,0,1},        {1,0,0,0,0,1,1,0,0,1},        {1,0,1,1,1,0,0,0,0,1},        {1,0,0,0,1,0,0,0,0,1},        {1,0,1,0,0,0,1,0,0,1},        {1,0,1,1,1,0,1,1,0,1},        {1,1,0,0,0,0,0,0,0,1},        {1,1,1,1,1,1,1,1,1,1}    };    if(!mgpath(mg,1,1,8,8))        PRintf("該迷宮問題沒有解!");    return 0;}bool mgpath(int mg[10][10],int xi,int yi,int xe,int ye)//求解路徑為;(xi,yi)->(xe,ye){    int i,j,k,di,find;    StType st;//定義棧st    st.top=-1;//初始化棧頂指針    st.top++;//初始化方塊進棧    st.date[st.top].i=xi;    st.date[st.top].j=yi;    st.date[st.top].di=-1;    mg[xi][yi]=95;    while(st.top>-1)//棧不空時循環    {        i=st.date[st.top].i;//取棧頂方塊        j=st.date[st.top].j;        di=st.date[st.top].di;        if(i==xe&&j==ye)//到了出口輸出路徑        {            printf("迷宮結果如下(1代表不可走,0代表可走,'_'代表路徑):/n");            for(int n=0;n<10;n++)            {                int m=0;                while(m<10)                {                    if(mg[n][m]==95)                        printf("%2c ",mg[n][m]);                    else                        printf("%2d ",mg[n][m]);                    m++;                }                printf("/n");            }            printf("迷宮路徑如下");            printf("/n");            for(k=0;k<= st.top;k++)            {                printf("/t(%d,%d)",st.date[k].i,st.date[k].j);                if((k+1)%5==0)                    printf("/n");            }            printf("/n");            return true;//找到一條路徑后返回true        }        find=0;        while(di<4&&find==0)        {            di++;            switch(di)            {            case 0:                i=st.date[st.top].i-1;                j=st.date[st.top].j;                break;            case 1:                i=st.date[st.top].i;                j=st.date[st.top].j+1;                break;            case 2:                i=st.date[st.top].i+1;                j=st.date[st.top].j;                break;            case 3:                i=st.date[st.top].i;                j=st.date[st.top].j-1;                break;            }            if(mg[i][j]==0)//找到下一個可走相鄰方塊                find=1;        }        if(find==1)//找到下一個可走方塊        {            st.date[st.top].di=di;//修改原來棧頂元素di的值            st.top++;       //下一個可走方塊進站            st.date[st.top].i=i;            st.date[st.top].j=j;            st.date[st.top].di=-1;            mg[i][j]=95;//避免重復走到該方塊        }        else//沒有路徑可走退棧        {            mg[st.date[st.top].i][st.date[st.top].j]=0;//讓該位置變為其他路徑可走方塊            st.top--;        }    }    return false;//沒有路徑可走返回法false}

運行結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲第九十九页 | 久久成人精品视频 | 精品久久久久久国产三级 | 久久久久久久久久久久久久国产 | 欧美在线观看视频一区 | 欧美成人精品欧美一级乱黄 | 亚洲精品久久久久www | 黑人操穴 | 欧美高清一级片 | 国产免费久久久 | 欧美日韩国产成人在线 | 美女露100%无遮挡 | 免费a视频在线观看 | 国产日韩欧美 | 国产在线精品一区二区三区 | 手机免费看一级片 | 91精品国产九九九久久久亚洲 | 欧洲精品色 | av视在线 | 有兽焉免费动画 | 综合国产一区 | 九九热这里只有精品8 | 久久亚洲网 | 久久欧美亚洲另类专区91大神 | www.精品一区 | 免费a级黄色片 | 性大片免费看 | 欧美视频国产 | av免费不卡国产观看 | 欧美中文字幕一区二区三区亚洲 | 99久久精品免费 | av在线网站观看 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | 国产精品久久久久一区二区 | 亚洲第一成人在线 | 国产一区二区三区高清 | 日韩视频一区二区三区四区 | 成人一区二区三区四区 | 国产亚洲精彩视频 | 男女无遮挡羞羞视频 | 欧美一区二区三区中文字幕 |