zoukankan      html  css  js  c++  java
  • Representations of graphs

    We can choose between two standard ways to represent a graph 
    as a collection of adjacency lists or as an adjacency matrix. Either way applies
    to both directed and undirected graphs. Because the adjacency-list representation
    provides a compact way to represent sparse graphs—those for which
    less than V ^2—it is usually the method of choice. Most of the graph algorithms
    presented in this book assume that an input graph is represented in adjacencylist
    form. We may prefer an adjacency-matrix representation, however, when the
    graph is dense—E is close to V^2—or when we need to be able to tell quickly
    if there is an edge connecting two given vertices.

    A potential disadvantage of the adjacency-list representation is that it provides
    no quicker way to determine whether a given edge .u; / is present in the graph
    than to search for  in the adjacency list AdjOEu. An adjacency-matrix representation
    of the graph remedies this disadvantage, but at the cost of using asymptotically
    more memory.

    the adjacency matrix A of an undirected graph is its own transpose: A  = AT.
    In some applications, it pays to store only the entries on and above the diagonal of
    the adjacency matrix, thereby cutting the memory needed to store the graph almost
    in half.

  • 相关阅读:
    什么是Python???
    python中闭包详解
    python类中的__init__和__new__方法
    python中不需要函数重载的原因
    装饰器详解
    IDEA中导入非maven项目(从eclipse中迁移过来的)
    CLion、cmake、mingw、openCV安装
    跨域问题的一些思考
    maven中jar包手动导入
    对于序列化的理解
  • 原文地址:https://www.cnblogs.com/wujunde/p/7134307.html
Copyright © 2011-2022 走看看