日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

求解迷宫问题的所有路径及最短路径程序

發布時間:2025/6/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 求解迷宫问题的所有路径及最短路径程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?路障

?路障

?路障

?路障

?路障

?路障

?路障

?入口

?

?

?路障

?路障

?路障

?

?路障

?

?

?路障

?路障

?

?

?

?路障

?路障

?路障

?路障

?

?

出口?

?路障

?路障

?路障

?路障

?路障

?路障

?路障

如上圖,,要求輸出迷宮的所有路徑,并求出最短路徑長度及最短路徑。。。。。。

入口坐標設為(1,1),出口坐標設為(4,4),,,親,,,接下來你懂的。。。。。

?

?

?

?

#include<stdio.h>

#define M 4????//行數
#define N 4?????//列數
#define MaxSize????100?????//棧最多元素個數
int mg[M+2][N+2]={??????//一個迷宮,其四周要加上均為1的外框
????{1,1,1,1,1,1},
????{1,0,0,0,1,1},
????{1,0,1,0,0,1},
????{1,0,0,0,1,1},
????{1,1,0,0,0,1},
????{1,1,1,1,1,1}
};

struct migong{
????int i;??????//路徑橫坐標
????int j;??????//路徑縱坐標
????int di;?????//方向
}Stack[MaxSize],Path[MaxSize];??????//定義棧和存放最短路徑的數組

int top=-1;?????//棧頂指針
int count=1;????//路徑數計數
int minlen=MaxSize;?????//最短路徑長度

void mgpath(){??????//路徑為:(1,1)->(M,N)
????int i,j,di,find,k;
????top++;Stack[top].i=1;Stack[top].j=1;Stack[top].di=-1;
????mg[1][1]=-1;????????//初始結點進棧
????while(top>-1){??????//棧不空時循環
????????i=Stack[top].i;j=Stack[top].j;di=Stack[top].di;
????????if(i==M && j==N){???????//找到了出口,輸出路徑
????????????printf("M:??",count++);
????????????for(k=0;k<=top;k++){
????????????????printf("(%d,%d)??",Stack[k],i,Stack[k].j);
????????????????if((k+1)%5==0)??????//輸出時每5個結點換一行
????????????????????printf("\n\t");
????????????}
????????????printf("\n");
????????????if(top+1<minlen){???????//比較輸出最短路徑
????????????????for(k=0;k<=top;k++)
????????????????????Path[k]=Stack[k];
????????????????minlen=top+1;
????????????}
????????????mg[Stack[top].i][Stack[top].j]=0;???//讓該位置變為其他路徑的可走結點
????????????top--;
????????????i=Stack[top].i;j=Stack[top].j;di=Stack[top].di;
????????}
????????find=0;
????????while(di<4 && find==0){?????//找下一個可走結點
????????????di++;
????????????switch(di){
????????????????case 0:i=Stack[top].i-1;j=Stack[top].j;break;???//上面
????????????????case 1:i=Stack[top].i;j=Stack[top].j+1;break;???//右邊
????????????????case 2:i=Stack[top].i+1;j=Stack[top].j;break;???//下面
????????????????case 3:i=Stack[top].i;j=Stack[top].j-1;break;???//左邊
????????????}
????????????if(mg[i][j]==0)
????????????????find=1;
????????}

????????if(find == 1){??????//找到了下一個可走結點
????????????Stack[top].di=di;???//修改原棧頂元素的di值
????????????top++;??????//下一個可走結點進棧
????????????Stack[top].i=i;
????????????Stack[top].j=j;
????????????Stack[top].di=-1;
????????????mg[i][j]=-1;????????//避免重復走到該結點
????????}else{
????????????mg[Stack[top].i][Stack[top].j]=0;???//讓該位置變為其他路徑的可走結點
????????????top--;
????????}
????}

????printf("最短路徑如下:\n");
????printf("長度:??%d\n",minlen);
????printf("路徑:??");
????for(k=0;k<minlen;k++){
????????printf("(%d,%d)??",Path[k].i,Path[k].j);
????????if((k+1)%5==0)??????//輸出時每5個結點換一行
????????????printf("\n\t");
????}
????printf("\n");
}

int main(){
????printf("迷宮所有路徑如下:\n");
????mgpath();
????return 0;
}

總結

以上是生活随笔為你收集整理的求解迷宫问题的所有路径及最短路径程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产视频在线观看网站 | 日日碰狠狠添天天爽无码 | 日本一区二区免费高清视频 | 欧美bbbbbbbbbbbb精品 | 国产精品xxxxx | 越南少妇做受xxx片 亚洲av综合色区无码一二三区 | 99热热久久 | 日少妇的逼 | 亚洲精品123区| av手机观看| 嫩草懂你 | 法国空姐电影在线 | 中文字幕8| jzzijzzij亚洲成熟少妇18 欧美www在线观看 | 免费在线a| 国产剧情av麻豆香蕉精品 | 天天摸天天 | 五月天中文字幕av | 黄色大片aaa | 98视频在线 | 国产不卡视频一区二区三区 | 欧美中文字幕在线视频 | 成人综合婷婷国产精品久久 | 又黄又刺激的视频 | 欧美一区二区三区婷婷月色 | 天堂成人在线观看 | 丁香色欲久久久久久综合网 | 精品丰满少妇一区二区三区 | 丰满的女人性猛交 | 亚洲精品一区二区三区区别 | 国产精品夜夜夜爽张柏芝 | 麻豆国产一区二区三区 | 久久天堂av综合合色蜜桃网 | 亚洲一区二区在线免费观看 | 亚洲免费自拍 | 高清无码一区二区在线观看吞精 | 欧美10p | av一区免费 | 天堂av√| 日本青草视频 | 美女被男人c | 日韩精品视频免费在线观看 | 午夜电影福利网 | 国产成人在线看 | 密桃成熟时在线观看 | 99热这里只| 欧美成人看片黄a免费看 | 在线观看av资源 | 爱爱视频在线看 | 天天综合天天色 | 不卡在线一区二区 | 欧美 日韩 成人 | 久久精品5 | 制服丝袜先锋 | 4438亚洲 | 美女露出让男生揉的视频 | 婷婷视频一区二区三区 | 中文字幕av第一页 | 偷偷操av | 豆花av在线| 欧美性猛交富婆 | 国产日韩久久久 | 可以免费看的av毛片 | 午夜在线视频免费观看 | 国产.com| 久久九九免费 | av导航网站 | 日韩欧美亚洲综合 | 中日韩毛片 | 姑娘第5集高清在线观看 | 国产乡下妇女做爰 | 人妻无码一区二区三区四区 | 日本久热 | 带aaa级的网名 | 午夜色网 | 亚洲自拍偷拍一区 | 久久国产中文字幕 | 国产经典久久 | 人人澡人人添 | 亚洲人视频在线 | 国产中文字幕av | 亚洲另类网站 | 免费大片在线观看www | 新版红楼梦在线高清免费观看 | 一卡二卡三卡视频 | 四虎影院www | 欧美电影一区 | 狠狠爱网站 | 亚洲视频在线网 | 国产黄在线免费观看 | 国产精品三级视频 | 靠逼网站在线观看 | 欧美成人第一页 | 亚洲精品一区二区三区不卡 | 久久精品一区二区三 | 色老头一区二区 | 欧洲三级视频 | 天天射干 | 久久久欧美精品sm网站 |