資料結構與演算法作業 用C語言程式設計隨機生成迷宮,然後找出從入口到出口的路線圖。急

時間 2022-01-02 05:36:03

1樓:風精靈林

幾點說明:

1.本程式是動態的,執行後自動尋找迷宮出路

2.本程式對c語言剛學完的有很大的意義.

3.四周是牆,座標(1,1)是入口,右下腳是出口

宣告:本程式用vc除錯是無法通過的需要修改

本程式除錯工具是tc.....................

#include "graphics.h"

#include "dos.h"

#include "stdlib.h"

#include "process.h"

#define max_col 14/*定義迷宮大小*/

#define max_row 14

typedef struct

offsets;

mapture(int i,int j,int k);/*標記迷宮,(i,j)標記為k模式*/

initmaze();/*初始化迷宮陣列*/

findmaze(int i,int j);/*找到了(i,j)可走,標記*/

mapmaze();/*畫出原始迷宮*/

int findpath(int row,int col);/*遞迴函式,找出迷宮路徑*/

mapbar();/*畫出方格*/

initgrap();/*初始化vga*/

print();/*迷宮走完後,輸出是否成功 */

int startx=50,starty=50;/*畫圖的螢幕座標*/

int maze[max_row][max_col];

offsets move[8]=,,,,,,,}; /*8個方向尋找*/

initmaze()/*初始化迷宮陣列 */

for(i=0;i

randomize();

for(i=1;i

for(j=1;j

}findmaze(int i,int j)/*找到 (i,j)可走*/

returnmaze(int i,int j)/*找到(i,j)可走 ,但下一步無路走則標記*/

print(int i)/*迷宮走完後,輸出是否成功*/

int findpath(int row,int col)/*用遞迴法找迷宮*/

else

findpath(next_row,next_col);/*沒有到出口繼續遞迴*/

maze[next_row][next_col]=3;

returnmaze(next_row,next_col);

}direct++;

}return(row);

}tc除錯良好

2樓:電子產品第一線

#include

#include

#include

#include

/* define the size of maze */

#define max_col 6

#define max_row 6

#define true 1

#define false 0

#define is_usable(a, b) (a >= 0 && a < max_row) && (b >= 0 && b < max_col) && maze[a][b] && (!my_maze[a][b])

static int maze[max_row][max_col];

static int target_maze[max_row][max_col];

static void init_maze();

static int move_to(int i, int j, int (*maze)[max_col], int count);

static void print_maze(int (*maze)[max_col]);

static void init_maze()

maze[1][0] = 1; /* start point */

maze[max_row - 1][max_col - 2] = 1; /* end point */

}static int move_to(int _i,int _j, int (*in_maze)[max_col], int count)

} else

}my_maze[_i][_j] = count;

/* reach the end point */

if (_i == max_row - 1 && _j == max_col - 2)

return true;

}if (is_usable(_i - 1, _j))

if (is_usable(_i + 1, _j))

if (is_usable(_i, _j - 1))

if (is_usable(_i, _j + 1))

return false;

}static void print_maze(int (*maze)[max_col])

printf("\n");}}

int main()

else }}

vc60下正常執行

資料結構作業-迷宮的求解

3樓:殘潮蕩月

#include

#include

#define m 15

#define n 15

struct mark //定義迷宮內點的座標型別

; struct element //"戀"棧元素,嘿嘿。。

; typedef struct lstack //鏈棧

*plstack;

/*************棧函式****************/

int initstack(plstack &s)//構造空棧

int stackempty(plstack s)//判斷棧是否為空

壓入新資料元素

棧頂元素出棧

else

return 0;

} /***************求迷宮路徑函式***********************/

void mazepath(struct mark start,struct mark end,int maze[m][n],int diradd[4][2])

{ int i,j,d;int a,b;

element elem,e;

plstack s1, s2;

initstack(s1);

initstack(s2);

maze[start.x][start.y]=2; //入口點作上標記

elem.x=start.x;

elem.y=start.y;

elem.d=-1; //開始為-1

push(s1,elem);

while(!stackempty(s1)) //棧不為空 有路徑可走

{ pop(s1,elem);

i=elem.x;

j=elem.y;

d=elem.d+1; //下一個方向

while(d<4) //試探東南西北各個方向

{ a=i+diradd[d][0];

b=j+diradd[d][1];

if(a==end.x && b==end.y && maze[a][b]==0) //如果到了出口

{ elem.x=i;

elem.y=......

資料結構c語言描述,資料結構(C語言描述)

include include include define datatype int define maxsize 1000 typedef struct nodebitreenode datatype bt maxsize bitreenode buildbtree datatype bt,in...

C語言資料結構考試,C語言資料結構考試

桐疏蘭 c語言是一門程序導向 抽象化的通用程式設計語言,廣泛應用於底層開發。c語言能以簡易的方式編譯 處理低階儲存器。c語言是僅產生少量的機器語言以及不需要任何執行環境支援便能執行的高效率程式設計語言。 這個考題應是c程式設計和資料結構在一起的 咖啡巷 直接選擇排序等幾種排序方法書上是有介紹的。基本...

急高手請進c語言中資料結構與演算法是用來幹嘛

那裡來這麼多問題 語言和語言之間的差別,就是一個問題的解決方法的差別如果真的把演算法弄明白了,就像張口說普通話一樣簡單能有怎麼多奇怪的問題,只能說 一 你對資料結構演算法理解不夠透徹 熟練 二 你對你所要操作的語言還沒有完全瞭解 演算法中的 一般都是偽 告訴你的是一種思想,複製過來肯定不能直接使用,...