亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? algo3-5.cpp

?? 實現迷宮求解
?? CPP
字號:
 // algo3-5.cpp 利用棧求解迷宮問題(只輸出一個解,算法3.3)
  #include<string.h>
 #include<ctype.h>
 #include<malloc.h> // malloc()等
 #include<limits.h> // INT_MAX等
 #include<stdio.h> // EOF(=^Z或F6),NULL
 #include<stdlib.h> // atoi()
 #include<io.h> // eof()
 #include<math.h> // floor(),ceil(),abs()
 #include<process.h> // exit()
 #include<iostream.h> // cout,cin
 // 函數結果狀態代碼
 #define TRUE 1
 #define FALSE 0
 #define OK 1
 #define ERROR 0
 #define INFEASIBLE -1
 // #define OVERFLOW -2 因為在math.h中已定義OVERFLOW的值為3,故去掉此行
 typedef int Status; // Status是函數的類型,其值是函數結果狀態代碼,如OK等
 typedef int Boolean; // Boolean是布爾類型,其值是TRUE或FALSE

 struct PosType // 迷宮坐標位置類型
 {
   int x; // 行值
   int y; // 列值
 };

 #define MAXLENGTH 25 // 設迷宮的最大行列為25
 typedef int MazeType[MAXLENGTH][MAXLENGTH]; // 迷宮數組類型[行][列]

 // 全局變量
 MazeType m; // 迷宮數組
 int x,y; // 迷宮的行數,列數
 PosType begin,end; // 迷宮的入口坐標,出口坐標

 void Print()
 { // 輸出迷宮的解(m數組)
   int i,j;
   for(i=0;i<x;i++)
   {
     for(j=0;j<y;j++)
       printf("%3d",m[i][j]);
     printf("\n");
   }
 }

 void Init(int k)
 { // 設定迷宮布局(墻為值0,通道值為k)
   int i,j,x1,y1;
   printf("請輸入迷宮的行數,列數(包括外墻):");
   scanf("%d,%d",&x,&y);
   for(i=0;i<x;i++) // 定義周邊值為0(外墻)
   {
     m[0][i]=0; // 行周邊
     m[x-1][i]=0;
   }
   for(i=0;i<y-1;i++)
   {
     m[i][0]=0; // 列周邊
     m[i][y-1]=0;
   }
   for(i=1;i<x-1;i++)
     for(j=1;j<y-1;j++)
       m[i][j]=k; // 定義除外墻,其余都是通道,初值為k
   printf("請輸入迷宮內墻單元數:");
   scanf("%d",&j);
   printf("請依次輸入迷宮內墻每個單元的行數,列數:\n");
   for(i=1;i<=j;i++)
   {
     scanf("%d,%d",&x1,&y1);
     m[x1][y1]=0; // 修改墻的值為0
   }
   printf("迷宮結構如下:\n");
   Print();
   printf("請輸入入口的行數,列數:");
   scanf("%d,%d",&begin.x,&begin.y);
   printf("請輸入出口的行數,列數:");
   scanf("%d,%d",&end.x,&end.y);
 }
 int curstep=1; // 當前足跡,初值(在入口處)為1
 struct SElemType // 棧的元素類型
 {
   int ord; // 通道塊在路徑上的"序號"
   PosType seat; // 通道塊在迷宮中的"坐標位置"
   int di; // 從此通道塊走向下一通道塊的"方向"(0~3表示東~北)
 };

 #include"c3-1.h" // 采用順序棧存儲結構
 #include"bo3-1.cpp" // 采用順序棧的基本操作函數

 // 定義墻元素值為0,可通過路徑為1,不能通過路徑為-1,通過路徑為足跡
 Status Pass(PosType b)
 { // 當迷宮m的b點的序號為1(可通過路徑),返回OK;否則,返回ERROR
   if(m[b.x][b.y]==1)
     return OK;
   else
     return ERROR;
 }

 void FootPrint(PosType a)
 { // 使迷宮m的a點的值變為足跡(curstep)
   m[a.x][a.y]=curstep;
 }

 void NextPos(PosType &c,int di)
 { // 根據當前位置及移動方向,求得下一位置
   PosType direc[4]={{0,1},{1,0},{0,-1},{-1,0}}; // {行增量,列增量},移動方向,依次為東南西北
   c.x+=direc[di].x;
   c.y+=direc[di].y;
 }

 void MarkPrint(PosType b)
 { // 使迷宮m的b點的序號變為-1(不能通過的路徑)
   m[b.x][b.y]=-1;
 }

 Status MazePath(PosType start,PosType end) // 算法3.3
 { // 若迷宮m中存在從入口start到出口end的通道,則求得一條
   // 存放在棧中(從棧底到棧頂),并返回TRUE;否則返回FALSE
   SqStack S; // 順序棧
   PosType curpos; // 當前位置
   SElemType e; // 棧元素
   InitStack(S); // 初始化棧
   curpos=start; // 當前位置在入口
   do
   {
     if(Pass(curpos))
     { // 當前位置可以通過,即是未曾走到過的通道塊
       FootPrint(curpos); // 留下足跡
       e.ord=curstep;
       e.seat=curpos;
       e.di=0;
       Push(S,e); // 入棧當前位置及狀態
       curstep++; // 足跡加1
       if(curpos.x==end.x&&curpos.y==end.y) // 到達終點(出口)
         return TRUE;
       NextPos(curpos,e.di); // 由當前位置及移動方向,確定下一個當前位置
     }
     else
     { // 當前位置不能通過
       if(!StackEmpty(S)) // 棧不空
       {
         Pop(S,e); // 退棧到前一位置
         curstep--; // 足跡減1
         while(e.di==3&&!StackEmpty(S)) // 前一位置處于最后一個方向(北)
         {
           MarkPrint(e.seat); // 在前一位置留下不能通過的標記(-1)
           Pop(S,e); // 再退回一步
           curstep--; // 足跡再減1
         }
         if(e.di<3) // 沒到最后一個方向(北)
         {
           e.di++; // 換下一個方向探索
           Push(S,e); // 入棧該位置的下一個方向
           curstep++; // 足跡加1
           curpos=e.seat; // 確定當前位置
           NextPos(curpos,e.di); // 確定下一個當前位置是該新方向上的相鄰塊
         }
       }
     }
   }while(!StackEmpty(S));
   return FALSE;
 }

 void main()
 {
   Init(1); // 初始化迷宮,通道值為1
   if(MazePath(begin,end)) // 有通路
   {
     printf("此迷宮從入口到出口的一條路徑如下:\n");
     Print(); // 輸出此通路
   }
   else
     printf("此迷宮沒有從入口到出口的路徑\n");
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区在线观看视频| 91视频你懂的| 色婷婷av一区二区三区大白胸| 欧美裸体一区二区三区| 国产精品欧美一区二区三区| 日韩在线a电影| 99国产精品久久久久久久久久| 日韩视频免费观看高清完整版 | 男人的天堂久久精品| 暴力调教一区二区三区| 91精品国产全国免费观看| 有码一区二区三区| 国产成人在线网站| 欧美大片在线观看| 丝袜美腿一区二区三区| 暴力调教一区二区三区| 欧美精品一区在线观看| 无码av中文一区二区三区桃花岛| 色综合久久综合网97色综合| 国产欧美一区二区三区网站 | 国产一区二区三区av电影| 欧美日本一区二区| 亚洲最色的网站| 91在线精品一区二区| 欧美国产国产综合| 国产成人精品在线看| 久久久另类综合| 国内精品不卡在线| 精品三级av在线| 免费观看在线综合色| 欧美丰满少妇xxxxx高潮对白| 亚洲少妇中出一区| 91浏览器在线视频| 一区二区视频在线| 91福利国产成人精品照片| 亚洲精品乱码久久久久久黑人| 91亚洲精华国产精华精华液| 国产精品家庭影院| 91亚洲精品一区二区乱码| 国产精品国产三级国产普通话蜜臀| 国产一区二区电影| 欧美国产日韩a欧美在线观看| 岛国av在线一区| 国产精品国模大尺度视频| 国产91富婆露脸刺激对白| 欧美韩国日本综合| 99re视频精品| 亚洲国产精品久久久久秋霞影院| 欧美日韩国产bt| 精品一区二区精品| 久久精品视频一区二区| 成人av电影在线播放| 亚洲另类春色校园小说| 欧美三日本三级三级在线播放| 午夜天堂影视香蕉久久| 精品91自产拍在线观看一区| 国产精品12区| 亚洲色图制服诱惑 | 一区二区在线免费| 3atv在线一区二区三区| 黄色日韩三级电影| 中文字幕字幕中文在线中不卡视频| 色综合久久久久综合体桃花网| 亚洲1区2区3区4区| 久久久91精品国产一区二区精品| 波多野洁衣一区| 日精品一区二区| 国产亚洲一区字幕| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区在线观看免费| 日韩欧美成人一区| 白白色亚洲国产精品| 亚洲欧美日韩国产一区二区三区| 91麻豆精品国产91久久久| 国产美女一区二区三区| 亚洲影院免费观看| 久久久久久久久久久久久女国产乱| 国产不卡在线视频| 亚洲国产毛片aaaaa无费看 | 6080亚洲精品一区二区| 国产99久久久国产精品免费看| 亚洲香肠在线观看| 中国色在线观看另类| 欧美色区777第一页| 国产91在线|亚洲| 日产欧产美韩系列久久99| 中文久久乱码一区二区| 日韩一区二区三区电影在线观看 | 精品一区二区三区在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 欧美大片一区二区| 欧美日韩午夜在线| 成人av先锋影音| 国产呦萝稀缺另类资源| 日韩电影在线免费| 一区二区在线观看不卡| 国产精品麻豆欧美日韩ww| 日韩免费高清电影| 欧美日韩情趣电影| 在线欧美小视频| www.亚洲在线| 国产 欧美在线| 国产在线不卡一区| 精品一区二区三区影院在线午夜| 亚洲制服欧美中文字幕中文字幕| 亚洲欧洲美洲综合色网| 久久亚洲精华国产精华液| 91精品国产一区二区三区| 欧美日韩国产a| 欧美久久久久久蜜桃| 欧美在线视频你懂得| 91视频国产观看| 一本一道久久a久久精品综合蜜臀| 久久精品99国产精品| 美女视频黄久久| 五月天一区二区| 日韩在线卡一卡二| 青青国产91久久久久久| 蜜桃视频一区二区| 久久99国产乱子伦精品免费| 久久se这里有精品| 国模一区二区三区白浆| 国产美女精品人人做人人爽| 国模大尺度一区二区三区| 国产在线视频一区二区三区| 国产一区二区三区蝌蚪| 国产xxx精品视频大全| 国产成人高清在线| 99re这里只有精品6| 91麻豆成人久久精品二区三区| 91亚洲午夜精品久久久久久| 色婷婷精品久久二区二区蜜臂av | 日韩一级欧美一级| 精品成人一区二区三区| 国产欧美1区2区3区| 国产亚洲一区字幕| 亚洲日本青草视频在线怡红院| 一区二区三区视频在线看| 午夜久久久久久久久久一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 日韩精品亚洲专区| 国产综合一区二区| www.av亚洲| 欧美日韩国产高清一区二区三区| 精品免费99久久| 国产精品福利影院| 午夜婷婷国产麻豆精品| 国产中文字幕精品| 色综合天天做天天爱| 欧美一区二区精品久久911| 中文字幕免费不卡| 亚洲午夜三级在线| 国产一区二区看久久| 一本到三区不卡视频| 91精品在线免费观看| 日本一区二区三区国色天香 | 成人免费高清在线观看| 欧美午夜在线观看| 国产日本欧洲亚洲| 亚洲二区在线观看| 国产福利一区二区三区视频在线| 91视频免费看| 久久久一区二区三区| 亚洲一区中文在线| 国产不卡视频在线播放| 欧美一区在线视频| 亚洲欧洲另类国产综合| 激情小说亚洲一区| 欧美日韩高清一区二区| 中文字幕一区二区三区不卡在线| 日本麻豆一区二区三区视频| 色av一区二区| 国产女主播视频一区二区| 视频一区二区欧美| 99精品偷自拍| 久久久蜜臀国产一区二区| 天堂资源在线中文精品| av成人老司机| 久久久久久免费| 日产国产高清一区二区三区| 欧美亚洲丝袜传媒另类| 国产精品丝袜黑色高跟| 精品制服美女丁香| 69p69国产精品| 亚洲午夜久久久| 在线免费观看日本一区| 日韩美女久久久| 丰满放荡岳乱妇91ww| 亚洲人成在线播放网站岛国| 国产一区二区伦理| 精品美女一区二区| 久久超级碰视频| 777奇米四色成人影色区| 亚洲一区二区视频| 色哦色哦哦色天天综合| 亚洲天堂久久久久久久| 99国产精品国产精品毛片| 国产欧美日韩在线看| 成人一区在线看| 国产精品成人免费|