0
点赞
收藏
分享

微信扫一扫

图的一些算法设计题

1.设计一个算法,求无向连通图中距离顶点V最远的顶点。

假设图G采用邻接表的存储结构,利用广度优先搜索遍历算法,从V出发进行广度优先搜索,最后一层的顶点距离V最远。遍历时利用队列暂存各个顶点,队列中的最后一个顶点一定在最后一层,因此只要将该顶点作为结果即可。

int maxdis(ALGraph *G,int v)
{ArcNode *p;
 int Q[MAXSIZE];
 int front=rear=0;
 for(i=0;i<G->vexnum;i++)
   visited[i]=FALSE;
 rear++;
 Q[rear]=v;
 visited[v]=TRUE;
 while(rear!=front)
 {
    front=(front+1)%MAXSIZE;
    k=Q[front];
    p=G->adjvex[k].firstarc;
    while(p!=NULL)
    {
       j=p->adjvex;
       if(visited[j]==FALSE]
          {
             visited[j]=TRUE;
             rear=(rear+1)%MAXSIZE;
             Q[rear]=j;
          }
          p=p->nextarc;
          }
          }
          return k;
          }

举报

相关推荐

0 条评论