zoukankan      html  css  js  c++  java
  • 数据结构-图的概念

    根据我做过的一些错题。我想要简要总结一下一些比较容易忽略的图的概念。

    1完全有向图和完全无向图。

    一个有向图,有n个结点,则最多有n(n-1)条边。这种有n(n-1)条边的有向图是完全有向图。

    一个无向图有n个节点,则最多有n(n-1)/2条边。这种n(n-1)/2条边的无向图是完全无向图。

    2连通,连通图,连通分量。

    无向图中,vi到vj有路径,则说vi到vj连通。

    无向图的任意两个节点都连通,说这是连通图。

    连通分量,在理解它之前,先要理解什么事极大连通子图。 A B是连通子图  A C也是连通子图

    A B C也是连通子图。但是A B, A  C,节点数分别是2,2少于A B C(扩充进C)连通子图的3。所以A B C是极大连通子图。

    D E也是连通子图。并且没办法再扩充了。它也是极大连通子图。连通分量就是极大连通子图

    所以连通分量是A B C。D E。

    PS:一个N节点图至少一个连通分量。至多N个连通分量。

    1 有环无环,深度优先搜索和拓扑排序关系。

    这个问题比较复杂,第一是要知道回路。

    回路 就是出发点与终点都是同一个点的路径 比如A-B-C-A。有回路就是有环的意思。

    第二是要知道深度优先搜索 不要用递归实现,当数据一多就炸了。要用栈来实现,那么如何用栈实现呢?

    http://blog.csdn.net/ivan_zgj/article/details/51541447这里有说。

    然后用栈实现的深度优先搜索 逆序就是 拓扑排序。

  • 相关阅读:
    *args和**kwargs
    事件驱动模型
    同步异步和阻塞非阻塞
    多进程和多线程
    认识tornado(五)
    认识tornado(四)
    认识tornado(三)
    [GO]使用select实现超时
    [GO]使用select实现斐波那契
    [GO]ticker的使用
  • 原文地址:https://www.cnblogs.com/zzzPark/p/6106207.html
Copyright © 2011-2022 走看看