当前位置 : 主页 > 编程语言 > c语言 >

图的一些算法设计题

来源:互联网 收集:自由互联 发布时间:2023-08-28
1.设计一个算法,求无向连通图中距离顶点V最远的顶点。 假设图G采用邻接表的存储结构,利用广度优先搜索遍历算法,从V出发进行广度优先搜索,最后一层的顶点距离V最远。遍历时利

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;
          }
上一篇:算法练习-day14
下一篇:没有了
网友评论