mgraph是鄰接矩陣儲存的圖,定義如下:
#define maxvertexnum 10
/*定義最大頂點數*/
typedef
int vertex;
/* 用頂點下標表示頂點,為整型 */
typedef
struct
mgraph;
/*用鄰接矩陣表示的圖的型別*/
裁判測試程式樣例:
#include
"stdio.h"
#include
"stdlib.h"
typedef
enum
boolean;
#define maxvertexnum 10
/*定義最大頂點數*/
typedef
int vertex;
/* 用頂點下標表示頂點,為整型 */
typedef
struct
mgraph;
/*用鄰接矩陣表示的圖的型別*/
boolean visited[maxvertexnum]
;/* 頂點的訪問標記 */
void
creatmgraph
(mgraph *g)
;/* 建立圖並且將visited初始化為false;裁判實現,細節不表 */
void
dfs(mgraph g,vertex v)
;int
main()
/* 你的**將被嵌在這裡 */
【**】void
dfs(mgraph g, vertex v)
}
algraph是鄰接表儲存的圖,定義如下:
#define max_vertex_num 10
/*定義最大頂點數*/
typedef
int vertex;
typedef
struct arcnodearcnode;
typedef
struct vnodevnode,adjlist[max_vertex_num]
;/*adjlist是陣列型別*/
typedef
struct
algraph;
/*圖型別*/
裁判測試程式樣例:
#include
"stdio.h"
#include
"stdlib.h"
#define max_vertex_num 10
/*定義最大頂點數*/
typedef
int vertex;
typedef
struct arcnodearcnode;
typedef
struct vnodevnode,adjlist[max_vertex_num]
;/*adjlist是陣列型別*/
typedef
struct
algraph;
/*圖型別*/
typedef
enum
boolean;
boolean visited[max_vertex_num]
;/*定義標誌向量,為全域性變數*/
void
creatalgraph
(algraph *g)
;/* 建立圖並且將visited初始化為false;裁判實現,細節不表 */
void
dfs(algraph *g,
int v)
;int
main()
/* 你的**將被嵌在這裡 */
【**】void
dfs(algraph *g,
int v)
}
其中mgraph是鄰接矩陣儲存的圖,定義如下:
#define maxvertexnum 10
/*定義最大頂點數*/
typedef
int vertex;
/* 用頂點下標表示頂點,為整型 */
typedef
struct
mgraph;
/*用鄰接矩陣表示的圖的型別*/
裁判測試程式樣例:
#include
"stdio.h"
#include
"stdlib.h"
typedef
enum
boolean;
#define maxvertexnum 10
/*定義最大頂點數*/
typedef
int vertex;
/* 用頂點下標表示頂點,為整型 */
typedef
struct
mgraph;
/*用鄰接矩陣表示的圖的型別*/
boolean visited[maxvertexnum]
;/* 頂點的訪問標記 */
void
creatmgraph
(mgraph *g)
;/* 建立圖並且將visited初始化為false;裁判實現,細節不表 */
void
bfs(mgraph g,vertex v)
;int
main()
/* 你的**將被嵌在這裡 */
【**】void
bfs(mgraph g,vertex v)}}
}
algraph是鄰接表儲存的圖,定義如下:
#define max_vertex_num 10
/*定義最大頂點數*/
typedef
int vertex;
typedef
struct arcnodearcnode;
typedef
struct vnodevnode,adjlist[max_vertex_num]
;/*adjlist是陣列型別*/
typedef
struct
algraph;
/*圖型別*/
裁判測試程式樣例:
#include
"stdio.h"
#include
"stdlib.h"
#define max_vertex_num 10
/*定義最大頂點數*/
typedef
int vertex;
typedef
struct arcnodearcnode;
typedef
struct vnodevnode,adjlist[max_vertex_num]
;/*adjlist是陣列型別*/
typedef
struct
algraph;
/*圖型別*/
typedef
enum
boolean;
boolean visited[max_vertex_num]
;/*定義標誌向量,為全域性變數*/
void
creatalgraph
(algraph *g)
;/* 建立圖並且將visited初始化為false;裁判實現,細節不表 */
void
bfs(algraph *g,
int v)
;int
main()
/* 你的**將被嵌在這裡 */
【**】void
bfs(algraph *g,
int v)
p=p->nextarc;}}
}
深度遍歷和廣度遍歷
圖的遍歷,所謂遍歷,即是對結點的訪問。乙個圖有那麼多個結點,如何遍歷這些結點,需要特定策略,一般有兩種訪問策略 深度優先遍歷,從初始訪問結點出發,我們知道初始訪問結點可能有多個鄰接結點,深度優先遍歷的策略就是首先訪問第乙個鄰接結點,然後再以這個被訪問的鄰接結點作為初始結點,訪問它的第乙個鄰接結點。總...
XML的深度遍歷和廣度遍歷
深度遍歷 public void domdepthfirst xmlnode currentnode if currentnode.haschildnodes xmlnode node currentnode.firstchildnode while node null domdepthfirst ...
深度優先遍歷 和 廣度優先遍歷
圖的廣度優先搜尋是樹的按層次遍歷的推廣,它的基本思想是 首先訪問初始點vi,並將其標記為已訪問過,接著訪問vi的所有未被訪問過的鄰接點 vi1,vi2,vi t,並均標記已訪問過,然後再按照vi1,vi2,vi t的次序,訪問每乙個頂點的所有未被訪問過的鄰接點,並均標記為已訪問過,依次類推,直到圖中...