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

    本章,我们学习了图。

    首先是图(GRAPH)的定义

    一种非线性数据结构,由有穷、非空的点集V(G)和边集E(G)组成。当G中的每条边有方向时,称G为有向图,有向边(用一对尖括号<a,b>)又称为弧,起始顶点被称为弧尾,终止顶点被称为弧头,每条边无方向时(用一对括号表示(a,b)和(b,a)一样),被称为无向图。

    图的存储方式

    1.邻接矩阵(二维数组存储)

     void creat(vexList GV, adjmatrix GA, int n,int e)
    
       {
    
        int i,j,k,w;
    
        cout << "输入"<<n<<"个顶点的值:"<<endl;
    
        //初始化顶点数组
    
        for(int i = 0; i < n; i++)     
    
         { cin>>GV[i];}
    
        //初始化邻接矩阵  
    
         for(int i = 0; i < n; i++) 
    
            for(int j = 0; j < n; j++)
    
        {if(i==j) GA[i][j] = 0;
    
             else  GA[i][j] = maxValue;
    
            }
    
        //建立邻接数组
    
          cout << "输入"<<e<<"条边:"<<endl;
    
          for(int k = 0; k < e; k++)
    
            {cin >> i >> j >>w;
    
             GA[i][j] =GA[j][i] = w;
    
            }
    
        }

    2.邻接表存储

    3.编辑数组

    然后是本章的重点

    邻接矩阵表示法的特点:

    优点是容易实现图的操作。

    缺点是空间效率为O(n2)。对稀疏图浪费空间。

    图的遍历

    DFS:从图中某个顶点V0 出发,访问此顶点,然后依次从V0的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和V0有路径相通的顶点都被访问到

    BFS:在访问了起始点v之后,依次访问 v 的邻接点; 然后再依次访问这些顶点中未被访问过的邻接点; 直到所有顶点都被访问过为止。

    在这周我们还学习了求最短路径的方法,我觉得很有意思。

    分别是Dijkstra算法和Floyd算法。

    对于上次的目标,首先敲代码的积极性有提高,但pta的作业还是卡着ddl完成的,然后就是上课有时候会有点走神,导致有些小细节要课后去问同学才行,就还是希望自己能够把学习当做乐趣而不是工作。

    ps:图片来自CSDN

  • 相关阅读:
    如何在iTerm2中配置oh my zsh?
    sublime中格式化jsx文件
    ES6 new syntax of Literal
    ES6 new syntax of Rest and Spread Operators
    How to preview html file in our browser at sublime text?
    ES6 new syntax of Default Function Parameters
    ES6 new syntax of Arrow Function
    七牛云2018春招笔试题
    Spring-使用注解开发(十二)
    Spring-声明式事物(十一)
  • 原文地址:https://www.cnblogs.com/Lnnnn/p/10890873.html
Copyright © 2011-2022 走看看