第六章学习小结

一.图的构建

      1.邻接矩阵:

             #define Maxint 32767

             #define MVNum 100

             typedef char VerTexType;
             typedef int ArcType;
             typedef struct
         {    
                VerTexType vexs [MVNum] ;
                ArcType arcs[MVNum) [MVNum);
                int vexnum,arcnum ;
           } AMGraph;

 

       2.邻接表

              #define MVNum 100

              typedef struct ArcNode
           {
                     int adjvex;
                     struct ArcNode * nextarc;
                     Otherinfo info;
             }ArcNode;
             typedef struct VNode
          {
                     VerTexType data;

                     ArcNode *firstarc;
            } VNode,AdjList[MVNum];
            typedef struct{
                     AdjList vertices;
                      int vexnum,arcnum;
            }ALGraph;

 

二.图的遍历

                BFS(广度优先搜索):已知图G=(V,E)和一个源顶点s,广度优先搜索以一种系统的方式探寻G的边,从而“发现”s所能到达的所有顶点,并计算s到所有这些顶点的距离(最少边数),该算法同时能生成一棵根为s且包括所有可达顶点的广度优先树。对从s可达的任意顶点v,宽度优先树中从s到v的路径对应于图G中从s到v的最短路径,即包含最小边数的路径。

                DFS(深度优先搜索):深度优先算法是一种用于遍历图的算法。这个算法会尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。

 

三.最小生成树

          学习了Prim算法和Kruskal算法。各有其特点,Prim算法针对顶点进行生成,Kruskal算法针对边进行生成。

          Dijkstra算法用于求最短路径。

posted @ 2020-06-14 21:31  刘赵诣  阅读(117)  评论(0编辑  收藏  举报