重回純C資料結構,遲早要還的。。。記迷宮問題2

2021-06-02 22:12:16 字數 1340 閱讀 1300

昨天沒有想這個問題,今天在任務的就緒表卡住了,於是又想到這個迷宮問題,改寫了**,現在遇到死胡同可以自己識別出來,並且有多條路的時候也能到達出口,當然不是最優解,因此命名為0.2版本,**如下:

#includeint a,b,c,d,g=0;

char mg[6][6]=

, //6*6的迷宮,0代表可以通過,1代表不可以通過,從左上角開始,從右下角出去

, ,, , };

typedef struct

move;

move m[9]= //有9種走法:

, //左上

, //正上

, //右上

, //左

, //中(不動)

, //右

, //左下

, //正下

, //右下

};typedef struct

position;

position p; //當前的位置

typedef struct

past;

past past[6][6]; //記錄過去走過的位置

typedef struct

history;

history his[36]; //記錄前一步的位置,以供退步

void main()

; p.s=0;

p.h=0;

for(a=0;a<6;a++) //初始化標記全為0,即所有路都沒有走過 }

past[0][0].mark=1;

while((p.s!=5)||(p.h!=5)) //當未到達出口時

else f++;// 走過此路

}else f++;//此路不通

}else f++;//出界了

}if(f==9)

}for(c=0;c<6;c++)

else printf("*");

} } printf("\n");

}

輸出結果,唉。。。我嘗試了chrome,opera,ie咋都傳不了啊!!!

執行結果還行,只是歷史記憶路徑只有一次,如果死胡同需要兩步才到底,則它就出不來了,還需要再修改,今天就先到這裡,畢竟只是0.2版本,以後的版本還需要把函式封裝一下,全用全域性變數成何體統。。。祝大家元旦快樂哈~~~

資料結構迷宮問題C 實現

出現實現圖 h檔案實現堆疊簡易操作 此處沒有將宣告與實現分離,應注意!pragma warning disable 4715 ifndef stack h define stack h struct position 結構體位置,表示迷宮每一格的行號和 列號 class stack bool ise...

c資料結構 棧 迷宮問題(迴圈實現)

走迷宮步驟 使用二維陣列來表示迷宮地圖。1表示可以走,0表示不能走。設定迷宮入口。判斷迷宮入口是否合法。將入口點入棧 將當前點設定為入口點。loop 判斷是否能往左走,能則將當前點壓棧。goto loop 判斷是否能忘上走,能則將當前點壓棧。goto loop 判斷是否能往右走,能則將當前點壓棧。g...

資料結構迷宮問題 快速迭代器生成的資料結構

c 輸入輸出 string的簡單使用 陣列和向量 對角線問題 陣列和向量的排序 二分查詢原理 陣列二分查詢 向量二分查詢 3n 1問題 抽象資料型別 查詢問題的抽象資料型別視角 初識集合 次序統計量 有序向量與無序向量 以集合描述演算法 stl容器一覽 時空之謎 程式執行時間 量級常見執行時間 執行...