資料結構迷宮問題

2021-09-06 05:53:22 字數 2322 閱讀 3917

//base.h

公用的常量和型別

#include

#include

#include

#include

//函式結果狀態**

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef int status; //函式的返回值

typedef int directivetype; //下乙個通道方向

#define range 100 //迷宮大小

//~2。

//stack.h

#define stack_init_size 100

#define stackincrement 10

棧的順序儲存實現

typedef struct...postype;

typedef struct...selemtype;

typedef struct...sqstack;

棧的基本操作的演算法實現

status initstack(sqstack &s)...

status gettop(sqstack s, selemtype &e )...

status push(sqstack &s, selemtype e)...

* = e;

return ok;

}status pop(sqstack &s, selemtype &e)...

int stackempty(sqstack s)

...//~

3。//maze.h

迷宮程式

迷宮問題演算法: 從入口出發,順著某乙個方向進行探索,若能走通,則繼續

前進;否則沿著原路退回,換乙個方向繼續探索,直至出口位置,求得一條通路,

假如所有可能的通路都探索到而未能達到出口,則所設定的迷宮沒有通路.

說明:可通: 未增走到過的通道快.

#define row 9 //迷宮的行數

#define col 8 //迷宮的列數

typedef struct...mazetype; //迷宮型別

status initmaze(mazetype &maze, int a[col], int row, int col)...

} //加上圍牆

for(int j=0;j<=col+1;j++)...

for(i=0;i<=row+1;i++)...

maze.m = row, maze.n = col;

return ok;

}status pass(mazetype maze,postype curpos)...

status footprint(mazetype &maze,postype curpos)...

status markprint(mazetype &maze,postype curpos)...

selemtype createselem(int step, postype pos, int di)...

postype nextpos(postype curpos, directivetype di)...

return pos;

}status posequare(postype pos1, postype pos2)...

void printmaze(mazetype maze,int row,int col)...

} printf(" "); }}

status mazepath(mazetype &maze,postype start, postype end)...else...

if(e.di<4)...

} }}while(!stackempty(s));

return false;

}//test.cpp

#include "base.h"

#include "stack.h"

#include "maze.h"

測試void main()

... }

postype start,end;

start.row = 1; end.row = 9; = 8;

mazetype maze;

initmaze(maze,a,row,col);

status ok = mazepath(maze,start,end);

if(ok) printmaze(maze,row,col);

else printf("沒有找到通路");}

迷宮資料結構

實驗報告 題目 設計乙個程式,對任意設定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。一 需求分析 1.以二維陣列maze n n 表示迷宮,陣列中以元素值0表示通路,1表示障礙,限定迷宮大小n 100。2.第一行的資料為迷宮的行數m和列數n 從第2行到第m 1為迷宮值,同一行兩個數字之...

資料結構上機報告 迷宮

迷宮求解 小組成員 1 問題提出 利用棧結構實現迷宮求解問題。迷宮求解問題如下 心理學家把乙隻老鼠從乙個無頂蓋的大盒子的入口趕進迷宮,迷宮中設定很多隔壁,對前進方向形成了多處障礙,心理學家在迷宮的唯一出口放置了一塊乳酪,吸引老鼠在迷宮中尋找通路以到達出口,測試演算法的迷宮如下圖所示 2 問題分析及演...

資料結構課程設計報告 迷宮求解問題

課題設計1 迷宮求解 一.需求分析 本程式是利用非遞迴的方法求出一條走出迷宮的路徑,並將路徑輸出。首先由使用者輸入一組二維陣列來組成迷宮,確認後程式自動執行,當迷宮有完整路徑可以通過時,以0和1所組成的迷宮形式輸出,標記所走過的路徑結束程式 當迷宮無路徑時,提示輸入錯誤結束程式。二 概要設計 1.抽...