已知图的邻接表如图6.31所示,则从顶点v0出发按广度优先遍历的结果是()。
A.0132
B.0231
C.0321
D.0123
A.0132
B.0231
C.0321
D.0123
已知一个图如图8-42(b)所示,依据Dijkstra算法求从顶点l到其余各顶点的最短路径的顺序应是()。
A、2,5,4,6,3
B、2 , 5,3,4,6
C、2,3,5,4,6
D、5,4,6,3,2
已知图的邻接表表示的形式说明如下:
define MaxNum 50 //图的最大顶点数
typedef struct node{
int adjvex; //邻接点域
struct node*next; //链指针域
}EdgeNode; //边表结点结构描述
typedef struct{
char vertex; //顶点域
EdgeNode*firstedge;//边表头指针
}VertexNode; //顶点表结点结构描述
typedef struet{
VertexNode adjlist[MaxNum];//邻接表
int n,e; //图中当前的顶点数和边数
}ALGraph; //邻接表结构描述
下列算法输出图G的深度优先生成树(或森林)的边。阅读算法,并在空缺处填入合适的内容,使其成为一个完整的算法。
typedef enum{FALSE,TRUE}Boolean;
Boolean visited[MaxNurn];
void DFSForest(ALGraph*G){
int i;
for(i=0;i<G—>n;i++)visited[i]= (1) ;
for(i=0;i<G—>n;i++)if(!visited[i])DFSTree(G,i);
}
void DFSTree(ALGraph*G,int i){
EdgeNode*p;
visited[i]=TRUE;
p=G—>adjlist[i].firstedge;
while(p!=NULL){
if(!visited[p—>adjvex]){
printf("<%c,%c",G—>adjlist[i].vertex,
G—>adjlist[p—>adjvex].vertex);
(2) ;
}
(3) ;
}
}
从大到小的次序链接的,试分别写出从顶点0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历得到的顶点序列。
A、n-1
B、N
C、n+l
D、2n