#include#includeusing namespace std;
#define true 1
#define false 0
#define ok 1
#define error 0
#define overflow -2
typedef int status;
#define init_size 100 //儲存空間初始分配量
#define increment 10 //儲存空間分配增量
//迷宮元素的位置
typedef structposttype;
//棧元素型別結構
typedef structselemtype;
//棧結構
typedef structsqstack;
//構造空棧s
status initstack(sqstack &s)
//判斷棧是否為空
status stackempty(sqstack s)
//進棧
status push(sqstack &s,selemtype e)
*s.top++=e;
return ok; }
//出棧
status pop(sqstack &s,selemtype &e)
#define maxlength 100//迷宮包括外牆最大行列數目
//迷宮型別
typedef structmazetype;
//判斷位置是否可通
status pass(mazetype maze,posttype curpos)
//留下可通的足跡
status footprint(mazetype &maze,posttype curpos)
//搜尋位置
posttype nextpos(posttype &curpos,int di)
return cpos;}
//留下走過但不可通的足跡
status markprint(mazetype &maze,posttype curpos)
//尋找迷宮路徑
status mazepath(sqstack &s,mazetype &maze,posttype start,posttype end)
}else
if(e.di<4)}}
}while(!stackempty(s));
return false;}
//輸出迷宮圖形
status printmaze(mazetype &maze,int x,int y)
return ok;}
//從文字中輸入迷宮圖
status load_sq(sqstack &s,mazetype &maze,char *filename,int &m,int &n)
if(maze.m[i][j]==3)}}
cout<>ch;
if(ch=='y'||ch=='y')
**
不斷完善,要有個較完善的專案
都知道的話不一定能夠理解,更不一定能夠做到。做事情要有始有終,做軟體要全心全意為人民服務。想真正的做到,首先就得對它有及深刻的理解。現在我的狀態做不到,但努力尋找做不到的原因。很多情況下是無意識去這樣做的。但接受過兩年非普通大學生的教育後,這種無意識得到了很大的改善。就拿機房現在的做水流程,我看了一...
棧實現迷宮
棧的型別定義 棧是一種特殊的線性表,限定只能在表的一端進行插入和刪除操作的線性表。在表中,允許插入刪除的一端稱為 棧頂 不允許插入刪除的另一端稱為 棧底 沒有元素的棧稱為空棧,插入元素稱為入棧,刪除元素稱為出棧,稱為先進後出。順序棧型別的定義 順序棧的儲存方式是陣列,需要事先為他分配乙個可容納最多元...
迷宮求解 棧的實現
一 題目及分析 二 思路 迷宮 迷宮的檔案儲存方式 三 include include define length 10 define width 10 define start hang 1 從0行開始計算row define start lie 1 從0列開始column define end ...