以下关于生成树算法的描述正确的是()。
A.生成树算法的核心是在网络中生成一棵树,然后所有的数据转发都从树根向各个节点转发,这样就不可能发生广播风暴
B.如果网络中有环路,运行生成树算法通过阻塞掉一些链路以消除环路
C.生成树算法中的树根可以人为控制
D.一个局域网中,可能有多棵生成树
A.生成树算法的核心是在网络中生成一棵树,然后所有的数据转发都从树根向各个节点转发,这样就不可能发生广播风暴
B.如果网络中有环路,运行生成树算法通过阻塞掉一些链路以消除环路
C.生成树算法中的树根可以人为控制
D.一个局域网中,可能有多棵生成树
第1题
求最小生成树的克鲁斯卡尔(Kruskal)算法耗用的时间与图中______的数目正相关。
第3题
在一个有n个顶点的带权连通图中,有条边,则应该选用()算法来求这个图的最小生成树,从而使计算时间较少,
A、Prim
B、Kruskal
第4题
点是否在同一个连通分量上,在该算法中选择权值最小的边的原则是该边不能在图中构成(②),它主要适用于(③)。
A、稀疏
B、稠密
C、完全
D、不完全
第6题
试扩充深度优先搜索算法,在遍历图的过程中建立生成森林的子女-兄弟链表。算法的首部为其中,指针t指向生成森林上具有图顶点v信息的根结点。(提示:在继续按深度方向从根v的某一未访问过的邻接顶点w向下遍历之前,建立子女结点。但需要判断是作为根的第一个子女还是作为其子女的右兄弟链入生成树)
第7题
已知图的邻接表表示的形式说明如下:
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) ;
}
}
第9题
B.城市场景是指带有高楼等建筑物的场景
C.果树场景是指高度变化可能较大的果园场景
D.二维建图算法针对农田、城市、果树场景的不同进行优化,因此,选择符合作业场景类型的重建效果更佳。另外,果树模式场景不可进行果树识别并自动生成航线进行植保机作业