图 广度优先遍历

本文讲解了一种利用队列实现的BFS算法,针对PTA邻接存储图,重点在于如何通过链表操作将元素邻接节点放入队列并更新已访问状态。通过push和pop函数,以及邻接表的遍历,展示了在广度优先搜索中的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int Q[20];
int front = -1;
int rear = -1;
void push(int x)
{
    Q[++rear] = x;
}
int pop ()//出队且释放
{
    return Q[++front];
}
//首先放一个元素 然后把那个元素的所有的邻接也放进去 然后出队首 再放进去队首的所有元素
//每个元素只能放队列一次 需要标记
void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) )
{
    push(S);
    Visited[S] = true;
    while (rear!=front)
    {
        int u = pop();//取出来后 需要把这个结点的邻接点再放进来 也就是邻接表里面的元素了
        Visit(u);
        //找这个遍历方法 搞了好久 应该是链表学的不太好吧 这里指来指去的 烦死了
        for (PtrToAdjVNode W =  Graph->G[u].FirstEdge;W;W=W->Next)//怎么遍历元素
        {
            if (!Visited[W->AdjV])//可以访问
            {
                push(W->AdjV);
                Visited[W->AdjV] = true;
            }
        }
    }
    
}

PTA 邻接存储图的广度优先遍历

就是队列的实现 有模板练习

关键就是那个怎么遍历本链表的所有元素,这里有点卡,其他的就很简单了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值