c語言資料結構迷宮我菜鳥下面一段代

時間 2022-03-14 07:26:45

1樓:匿名使用者

我現在中專的!準備讀6年直到大專畢業!請問我學軟體工程可以的嗎?我數學特別不好!會不會有難處??我英語我會努力學的!

2樓:飛來橫禍

改好了#include

#include

#include

#define row 10

#define col 10

int maze[row][col];

void main()

int i,j,a,b;

for ( i = 0; i maze[i][0]=1;

maze[i][col-1]=1;

for (j = 0; j < col; ++j)maze[0][j]=1;

maze[row-1][j]=1;

for (i = 1; i for ( j =1 ; j < col-2; ++j)

maze[i][j]=rand()%2;

maze[1][1]=0;

maze[row-2][col-2]=0;

for (a = 0; a printf("\n");

for ( b =0 ; b < col-1; ++b)printf("%d ",maze[a][b] );

給分吧  麼麼噠

資料結構演算法(c語言) 迷宮求解

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])

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語言程式設計隨機生成乙個迷宮,然後找出從入口到出口的路線圖。急!

4樓:電子產品第一線

#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下正常執行

資料結構迷宮問題(c語言)

5樓:希望村村民

#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;}

6樓:匿名使用者

等高手,思想可能較容易,寫出來會很多

資料結構的迷宮求解問題(用c語言的)

7樓:木木

文理寫的挺全的,有原理有**。本身就是篇報告啊

資料結構c語言版迷宮問題 100

8樓:來鑲天

剛學都這樣,想當初我學習的時候連乙個單鏈表的逆置,都要理解半天。程式設計就是把實際問題給抽象成數學或非數學模型,結合資料的表示,再找到解決的方法。別忘了,學習資料結構是為了更好的運算元據。

思路:首先,迷宮如何用計算機語言表示?一般用二維陣列。0表示牆,1表示路。

其次,其次就是如何從迷宮中走出來了。結合堆疊,進行搜尋。

你可以嘗試著對問題進行分層,然後逐步細化來解決。

如果你要解決乙個別人給的走迷宮的問題,同樣還是要這樣,首先把別人給的迷宮在計算機中表示出來,其次結合資料結構所學的知識,找到通路,(關於結合資料結構的知識就看你自己的了,關鍵是對堆疊的了解)。

關於你說的,先看別人的程式,找到思路後自己才能程式設計問題。我看你是操之過急了,你得明白,知識的學習,首先就是會模仿,等你對整個課程有了系統的認識,你才會有自己的解題思路。創新是在有基礎的前提下進行的。

別人的東西,試著理解,畢竟許多東西單憑我們自己是不太可能想出來的,就像kmp演算法一樣(你應該馬上就會學到)。

第一章說過,研究資料間的關係的目的是為了更好的運算元據,迷宮問題,可以說是一類「搜尋」問題,更強調的是演算法,即在精通堆疊的基礎上想出乙個利用堆疊對迷宮進行搜尋的辦法。而堆疊,則是基礎,堆疊的操作就那麼幾個,學完馬上就會用。關鍵是如何運用三種程式設計方法再結合某些資料結構設計出乙個演算法。

一步一步來吧。

對了,給你乙個問題考慮考慮,「不用任何輔助變數」編寫乙個程式,逆置乙個字串試試。只給你乙個引數:該引數就是指向字串的指標。

你的最後問題問的就有點沒頭緒了,學習的過程並不是你想的那樣的,不見得資料結構學完之後就能編寫高質量程式,寫程式和看程式是相輔相成的,寫而不學則怠,學而不寫則罔。可以嘗試的寫寫,自己找不到思路可以看看別人是怎麼想的,自己多做做總結。

9樓:天降神兵

#include"iostream.h"

#include"stdlib.h"

#include"stdio.h"

#define m 10

#define n 10

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)

printf("成功 !\n");

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()

,,,};//行增量和列增量 方向依次為東西南北

initmaze(sto);//建立迷宮

printf("輸入入口的橫座標,縱座標[逗號隔開]\n");

printf("輸入出口的橫座標,縱座標[逗號隔開]\n");

scanf("%d,%d",&end.x,&end.y);

mazepath(start,end,sto,add); //尋找路徑}

資料結構c語言怎麼執行啊,資料結構C語言佇列執行不了

你這應該是資料結構書上的部分 也就是說不完整的 當年我上這個課的時候也很鬱悶不知道怎麼去改,讓它能執行。你需要定義好佇列,通過結構體定義,然後再定義佇列的處理函式,比如新增函式,刪除函式等,然後在main函式裡面呼叫就行了,這樣才能完整的讓程式編譯執行,當然那些定義的結構體或者函式要包含進來或者是跟...

C 資料結構包括C語言的資料結構嗎

答 包括。擴充套件知識 1 單純的c語言已被淘汰,c 是c語言的擴充套件 也可以叫發展 絕大部分的c語言的單詞 語法都在c 中適用,所以,就語言來說,按c語言寫的 在c 編譯器裡一般都能正常編譯執行。c 主要是擴充套件了物件導向的程式設計思想及相關的類 繼承等元素。2 但需要注意的是,極少量的偏門的...

c語言資料結構線性表,資料結構c語言版 使用線性表的順序儲存結構定義 靜態 實現線性表的初

編譯通過了,全是低階錯誤,邏輯問題沒有檢查,自己再看看吧 include include define maxsize 100 typedef struct seqlist typedef seqlist pseqlist pseqlist init seqlist void void destro...

資料結構C語言版的迷宮問題如何解決

include iostream.h include stdlib.h include stdio.h define m 10 define n 10 struct mark 定義迷宮內點的座標型別 struct element 棧元素 typedef struct lstack 鏈棧 plstac...

演算法與資料結構問題(C語言),演算法與資料結構 C語言描述的問題

1.首先要說明棧的存貯表示 typedef struct sqstack 假設s1,s2是已經開闢了存貯空間的兩個棧,s1中存貯有元素,則stacksplit s1,s2 可這樣實現 void stacksplit s1,s2 2.同樣要先定義存貯結構 typedef struct snode sn...