1樓:匿名使用者
這個要用到資料結構中講到的堆疊,建議你去找一本「資料結構」的教材,基本上每本書都會講到這個十分經典的問題,上面的演算法分析都很詳細,但是理解起來還是有點困難,你必須慢慢看,反覆琢磨。我也是琢磨了好多次才弄懂
2樓:匿名使用者
#include"stdio.h"
#define m 6
#define n 8
#define max 100
typedef struct
item;
typedef struct
sanyuan;
typedef struct
sqstack;
void initstack(sqstack *s)int stackempty(sqstack *s)void push(sqstack *s,sanyuan e)s->top++;s->elem[s->top]=e;}sanyuan pop(sqstack *s,sanyuan e)void printpath(sqstack *s)printf("\n");
}int mazepath()
,,,,,,,};
item move[8]=,,,,,,,};
sqstack *s;sanyuan temp;
int x,y,d,i,j;
initstack(s);
temp.x=1;temp.y=1;temp.d=-1;
push(s,temp);
while(!stackempty(s))else d=0;
}else d++;}}
return 0;
}void main()
資料結構迷宮問題(c語言)
3樓:希望村村民
#include
#include
#include
#include
int m,n,num,map[101][101],f[101][101],a[101],b[101],d[2][4]=,ans,flag;
void maze()
dfs(tx,ty);
f[tx][ty]=0;
ans--;}}
}int main()
return 0;}
4樓:匿名使用者
等高手,思想可能較容易,寫出來會很多
資料結構演算法(c語言) 迷宮求解
5樓:匿名使用者
注釋非常詳細,希望對你有所幫助。
#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])
while(s2)
return; //跳出兩層迴圈,本來用break,但發現出錯,exit又會結束程式,選用return還是不錯滴
} if(maze[a][b]==0) //找到可以前進的非出口的點
d++;
} }printf("沒有找到可以走出此迷宮的路徑\n");
} /*************建立迷宮*******************/
void initmaze(int maze[m][n])
for(j=0;j<=n+1;j++)
for(i=0;i<=m+1;i++) //輸出迷宮 }
void main()
,,,};//行增量和列增量 方向依次為東西南北 [/m]
initmaze(sto);//建立迷宮
printf("輸入入口的橫座標,縱座標[逗號隔開]\n");
printf("輸入出口的橫座標,縱座標[逗號隔開]\n");
scanf("%d,%d",&end.x,&end.y);
mazepath(start,end,sto,add); //find path
system("pause");
} 測試資料,演算法複雜度你就自己來寫吧,如果你連這都不自己做,那你一定是在應付作業。勸你還是自己執行測試一下吧,免得答辯時老師問你,什麼都不知道,那你就悲劇了。祝你好運!!
c語言 用佇列求解迷宮問題
6樓:哥會變強
#include
#define maxsize 100
#define n 10
int m[n+2][n+2]=,,
,,,,
,,,,
,};struct path
q[maxsize];
int front=-1;
int rear=-1;
void print(int front)printf("迷宮最快捷路徑如下:\n");
k=0;
while(k \t",q[k].i,q[k].j); m[q[k].i][q[k].j]=0; if(i%5==0) printf("\n"); }k++; }printf("\n迷宮最快捷路徑如圖所示:\n"); for(i=0;i<12;i++) printf("\n");}} int labyrinth(int x1,int y1,int x2,int y2) for(di=0;di<4;di++) if(m[i][j]==0)}} return 0; }void main() 在vc上執行 資料結構的迷宮求解問題(用c語言的) 7樓:木木 文理寫的挺全的,有原理有**。本身就是篇報告啊 想必你只想修改一下網上覆來的 然後交上去?其實不用這樣,答辯的事情太假了,我經歷過幾次,都是隨便讓你過的,你先上網找個能執行的 並要正確得出結果,然後上網找個演算法思想 迷宮問題很多c的電子書都有的 然後把演算法思想背了,之後上去就ok了,不怕的,一般老師都讓過的.move 裡面 else brea... include iostream.h include stdlib.h include stdio.h define m 10 define n 10 struct mark 定義迷宮內點的座標型別 struct element 棧元素 typedef struct lstack 鏈棧 plstac... 1答案應該是b,這個沒什麼好解釋的 就是指標變數指向變數的位址 2 答案應該是d 如果直接用字串對字元陣列初始化的話字元陣列的長度要比實際字串長度大1的 因為字串在字元陣列中是以 0 結束的,這個你也可以用sizeof 分別測試一下 我已經測試過了a比b大1的 3 答案應該是d,這個沒的說,括號的作... 你的int calculate這個函式,如果你返回0,那你printf d n result 列印的一定是0啊。其次,你的calculate函式的printf裡面有5個 d,後面卻只跟著4個引數,你讓程式怎麼正常算出結果?最後,scanf裡不要加 n!任何轉義字元都不行!include define... 從for語句的這種用法 寫在前面和後面沒有區別,作為迴圈最後執行的語句,先加和後加都是加,不影響最終a的取值,在下次迴圈條件判斷執行前,a的值都保證已經加1了.b a 相當於b a a b a 相當於a b a 迴圈執行順序是 a 0 判斷a 5成立,開始迴圈 如果不成立,直接退出迴圈 執行迴圈體一...高分C語言迷宮問題!!高手求救!急
資料結構C語言版的迷宮問題如何解決
C語言問題,C語言問題
c語言簡單問題,C語言簡單問題
c語言for迴圈問題,C語言迴圈問題