關於DFS 想請問邏輯問題 |
尚未結案
|
spring1201
一般會員 發表:3 回覆:1 積分:0 註冊:2010-05-23 發送簡訊給我 |
我用DFS的方法要找兩點間的所有path
16個點可以跑,但點變多 程式跑一半就關掉了 想問我df1這個function有哪邊寫錯 [code cpp] #include #include #define SIZE 16 using namespace std; int map[SIZE][SIZE] = {{0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0}, {1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0}, {1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0}, {0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0}, {1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0}, {0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1}, {0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0}, {0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0}, {1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0}, {0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1}, {0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0}, {0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0}, {0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0}, {0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1}, {0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1}, {0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0}}; int visit[SIZE];//判斷點有無走過 int stack[SIZE];//存路徑 void dfs(int s,int d,int stack_index); void dfs1(int s,int d,int stack_index,int visit_index); void output(int stack_index); //ofstream fout("output.txt"); int main(void){ int source,destination; cout<<"source:"; cin>>source; cout<<"destination:"; cin>>destination; dfs(source,destination,0); //fout.close(); system("pause"); return 0; } void dfs(int s,int d,int stack_index){ if(visit[s]!=-1){ stack[stack_index]=s;//加入 stack_index=stack_index 1; visit[s]=-1;//標記走過 dfs1(s,d,stack_index,0);//找鄰點 } } void dfs1(int s,int d,int stack_index,int visit_index){//找鄰點 while(visit_index stack[stack_index]=visit_index;//加入 stack_index=stack_index 1; visit[visit_index]=-1;//標記走過 if(visit_index==d){ output(stack_index); visit[visit_index]=0; stack_index=stack_index-1; //cout< else{ dfs1(visit_index,d,stack_index,0);//找鄰點 break; } } visit_index ; } if(visit_index==SIZE){ stack_index=stack_index-1; visit[s]=0; if(stack_index!=0){ dfs1(stack[stack_index-1],d,stack_index,s 1); //break; } } } void output(int stack_index){ //if(stack_index==8){ for(int i=0;i } cout< 編輯記錄
spring1201 重新編輯於 2010-05-26 23:01:41, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |