图的遍历的简单使用

1.深度优先遍历

void dfs(Graph G,int i) 
{
    visted[i] = 1;
    for (int j = 0; i < G.vexnum; j++)
    {
        if (G.arcs[i][j]==1&&visted[j]!=1)
        {
            dfs(G,j);
        }
    }

}

2.广度优先遍历

void  bfs(Graph G,int i) 
{
    int e = 0;
    Queue q = createQueue();
    visted[i] = 1;
    enQueue(q, i);
    while (isEmpty(q))
    {
        e = deQueue(q);
        for (int j = 0; j < G.vexnum; j++)
        {
            if (G.arcs[e][j] == 1 && visted[j] != 1) 
            {
                visted[j] = 1;
                enQueue(q, j);
            }
        }
    }
}

 

好了,我们下回见,peace

posted @ 2020-08-15 21:00  野评测  阅读(141)  评论(0)    收藏  举报