zoukankan      html  css  js  c++  java
  • 数据结构:图的基本知识

    由于图在面试里相对问的少,所以我先花了一点时间大致了解了一下基本知识

    图常用于表示多对多的关系

    包含:一组顶点(V)和一组边(W)

    抽象数据类型定义:

    两种常用在程序里表示图的方式:

    邻接矩阵,邻接表

    邻接矩阵:

     如果有连接就是1

    特点:对角线为0,对称

    于是发现有一半空间是重复的

    可以变二维矩阵为1维数组

    怎样计算新的数组下标,相对不是很困难

    邻接矩阵的好处:

    • 直观
    • 方便检查任意一对顶点是否存在边(查对应的数)
    • 方便找任一顶点的所有邻接点(遍历它的行)
    • 方便计算度(出发的边数和指向的边数)
    • 总的来说适合放稠密图

    邻接矩阵的缺点:

    • 对于稀疏图(点多边少)有大量无效元素
    • 统计稀疏图的边浪费时间

    邻接表:

    用指针数组表示,把有的边都写出来

    • 方便找邻接点
    • 对于稀疏图节省空间(N个头指针,2E个节点)
    • 对于无向图方便计算度,有向图则不好搞
    • 不方便检查任意一对顶点是否有边

    ------------------------------

    接下来是遍历:

    深度优先搜索 DFS

    广度优先搜索

  • 相关阅读:
    python数据类型:字典Dictionary
    python数据类型:元组
    python数据类型:列表List和Set
    python数据类型:字符串
    python数据类型:Number数字
    Python控制语句
    Python运算符
    python基础语法
    Linux shell Script初识
    linux awk详解
  • 原文地址:https://www.cnblogs.com/take-it-easy/p/14498520.html
Copyright © 2011-2022 走看看