【正确答案】正确答案:采用广度优先遍历,其邻接点均已遍历的结点是叶子结点,记下结点的半径(以分支个数记)。 int MiniRadius(AdjList g,int v) //图g以邻接表形式存储,求半径最小的生成树。设顶点信息就是编号,从顶点v开始遍历 {typedef struct {int v,level;}node; //队列元素 int MAX=100; //设最大层次数 int visited[MAX]=0; //访问数组 node R,Q[] //Q为队列,容量足够大 R.V=V; R.1evel=1; QueueInit(Q); QueueIn(Q,R); while(!Empty(Q) {R=QueueDel(Q); //出队 v=R.v; 1=R.level; P=g[v].firstarc;flag=0; //flag是顶点是否是叶子的标记 while(p) {w=p一>adjvex; if(visited[w]==0) {flag=1;R.level=l+l;QueueIn(Q,R);} p=p一>next; } if(flag==0) //其邻接点均已遍历的顶点是叶子结点 (if(1
【答案解析】