数据结构之深度优先搜索(用栈实现)问题
生活随笔
收集整理的這篇文章主要介紹了
数据结构之深度优先搜索(用栈实现)问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
深度優先搜索
可以這樣理解,向四邊延伸搜索,然后遇到不能搜索的時候就回退,也就是回溯思想,然后再去其它可能地方搜索。
題目:
定義一個二維數組:
int maze[5][5] = {
0, 1, 0, 0, 0,
0, 1, 0, 1, 0,
0, 0, 0, 0, 0,
0, 1, 1, 1, 0,
0, 0, 0, 1, 0,
};
它表示一個迷宮,其中的1表示墻壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求編程序找出從左上角到右下角的路線。程序如下:
#include<stdio.h>#define MAX_ROW 5 #define MAX_COL 5int top = 0;struct Node {int row;int col; } stack[512];int maze[MAX_ROW][MAX_COL] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0, };void push_stack(struct Node node) {stack[top++] = node; }struct Node pop_stack() {return stack[--top]; }int is_empty() {return top == 0; }void printf_stack() {for (int i &
總結
以上是生活随笔為你收集整理的数据结构之深度优先搜索(用栈实现)问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 八皇后问题(三)
- 下一篇: java之解析DNS的SRV记录