DFS BFS搜尋 題目

2021-07-12 00:58:18 字數 1724 閱讀 2584

這篇博主寫的是圖的深搜

圖的dfs附**

***、

/*

圖的深度優先遍歷

出處:一條魚@

2011-12-26

*/#include #include struct node /* 圖頂點結構定義 */

;typedef struct node *graph; /* 圖形的結構新型態 */

struct node head[9]; /* 圖形頂點陣列 */

int visited[9]; /* 遍歷標記陣列 */

/********************根據已有的資訊建立鄰接表********************/

void creategraph(int node[20][2],int num)/*num指的是圖的邊數*/

}/********************** 圖的深度優先搜尋法********************/

void dfs(int current)

}/****************************** 主程式******************************/

int main()

, , /* 邊線陣列 */

, ,, ,

, ,, ,

, ,, ,

, ,, ,

, };

int i;

//clrscr();

for ( i = 1; i <= 8; i++ ) /* 頂點陣列初始化 */

creategraph(node,20); /* 建立鄰接表 */

printf("content of the gragh's adlist is:\n");

for ( i = 1; i <= 8; i++ )

printf("\n"); /* 換行 */

}printf("\nthe end of the dfs are:\n");

dfs(1); /* 列印輸出遍歷過程 */

printf("\n"); /* 換行 */

puts(" press any key to quit...");

// getch();

}

非遞迴:

/**********************  圖的深度優先搜尋法********************/

void

dfs(node head[9],

intcurrent)  

p = p->nextnode;  

}  if

(p == null)  

}  }  

博主寫的bfs 利用佇列來寫。

/**********************  圖的廣度優先搜尋法********************/

void bfs(node head[9], int current)

p = p->nextnode; //下乙個頂點

}

DFS BFS 搜尋訓練

hdu 1016 include include include using namespace std int prime 40 vis 40 num 40 n void checkprime void dfs int i for int c 2 c n c int main return 0 p...

DFS BFS 搜尋基礎

首先深搜 先看輸入格式 5 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 第一行輸入乙個數n,接下來輸入n n的數字矩陣,0代表房間,1代表牆,每個位置都可以往上下左右四個方向走 題意非常簡單,就是求以左上角為出發點所能到達的最多的房間數。inc...

DFS BFS 搜尋總結

做了好多天的搜尋,今天來總結下。dfs 與 bfs dfs 深度優先搜尋 利用棧這種資料結構來實現 利用遞迴便於實現,但是效率較低 找到的第乙個解不一定是最優解,只是先序遍歷最早的可行解。bfs 廣度優先搜尋 利用佇列這種資料結構來實現,找到的第乙個解經常都是最優解 如迷宮的最短路徑 但是不常用來求...