這篇博主寫的是圖的深搜
圖的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 廣度優先搜尋 利用佇列這種資料結構來實現,找到的第乙個解經常都是最優解 如迷宮的最短路徑 但是不常用來求...