棧實現迷宮的較完善 程式

2021-06-11 16:34:39 字數 1564 閱讀 7647

#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 ...