2012-941


2012-941

1.求出无向无权连通图中距离顶点v的最短路径长度k的所有顶点,路径长度以边数为单位计算

  • 复习,理解,重点
typedef struct VNode{                      //顶点表结点
    int len0;//距离初始顶点v0的距离
    int v;//顶点编号
}Node;//邻接表的顶点类型
void bfsPrintNode(ALGraph *g,int v[],int k){
    Node Queue[MaxSize];//定义一个顶点类型的队列
    int front = 0;//队头
    int rear = 0;//队尾
    int flag[v0] = 1;//访问后则将其置为1
    Queue[rear++] = {0,v0};//初始顶点v0入队
    while(!isEmpty(Q)){
        Node node = Queue[front++];//v接收出队元素
        for(ArcNode *p = g.vexset[node.v].firstarc;p != NULL;p = p -> nextarc){
            if(flag[p -> nextarc == 0]){
                visit(p -> adjvex);//若p对应的邻接顶点没被访问,则访问它
                flag[p -> adjvex] = 1;
                Queue[rear++] = {node.len0 + 1,p -> adjvex};//邻接顶点入队
            }
        }
    }
    for(int i = 0;i < rear;++i){
        if(Queue[i].len0 == k){//打印出距离初始顶点距离为k的所有顶点
            printf("%d",Queue[i].v);
        }
    }
}

文章作者: 小冷同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小冷同学 !
用户交流区

温馨提示: 遵纪守法, 友善评论!