zoukankan      html  css  js  c++  java
  • 第六章小结

    学会了图的基本定义及相关的基本术语

    图的存储结构:1.领接矩阵(不便与增加和删除顶点,统计边的树木,空间复杂度高)

           2.邻接表(逆邻接表)(不便与判断顶点之间是否有边, 不便于计算有向图各个顶点的度)

    深度优先搜索(DFS)算法

    连通图

    bool visited[MVNum]
    void DFS(Graph G, int v)
    {
        cout << v;
        visited[v]=true;
        for(w=ForstAdjvex(G,v); w>=0; w=NextAdjVex(G,v,w))
        if(!visited[w]) DFS(G,w);
    }

    如果是非连通图,则要加多一层:

    void DFSTraverse(Graph G)
    {
         for(v=0; v<G.vexnum; v++) visited[v]=false;//访问标志数组初始化
         for(v=0; v<G.vexnum; v++) 
              if(!visited[v])  DFS(G,v);             
    }

    广度优先搜索(BFS)算法

    连通图

    void BFS(Graph G, int v)
    {//使用队列
        cout << " "<<v;
        visited[v]=true;
    //    InitQueue(Q);
        EnQueue(Q,v);
        while(!Q.empty())
        {
            int u;
            DeQueue(Q,u); //队列元素出队并置为u
            for(int w=FirstAdjVex(l,u); w>=0; w=NextAdjVex(l,u,w))
            {
                if(!visited[w])
                {
                    cout << " "<<w;
                    visited[w]=true;
                    EnQueue(Q,w);
                }
             } 
        }
    }

    如果是非连通图,也像DFS一样加多一层。

    学会了如何创建最小生成树

    普利姆算法(由点到边)书本P167页

    克鲁斯卡尔算法(由边到点)书本P169

    如果是同一算法,没有随机树什么的,那么生成的树是唯一的

    如果是手工的话,当有两条边的权值相等时,有可能生成最后各边权值和最小而且相同,但不同的树。

  • 相关阅读:
    day-11函数的形参与实参
    day-10初级函数
    .检查用户名是否使用接口
    04.vue发送短信逻辑
    03.celery发送短信接口
    02.celery配置与基本使用
    Celery介绍
    python爬虫与Django框架vue交互的前后端代码详情(励志人生网实例)
    爬虫找工作之面试题(2)
    爬虫找工作之面试题(1)
  • 原文地址:https://www.cnblogs.com/ojkojk/p/13128412.html
Copyright © 2011-2022 走看看