zoukankan      html  css  js  c++  java
  • 数据结构和算法 —— 图

    图的定义

    图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。
    在这里插入图片描述
    对于图的定义,需要明确几个注意的地方:

    1.线性表中我们把数据元素叫元素,树中叫结点,在图中数据元素我们则称之为顶点(Vertex)。

    2.线性表可以没有数据元素,称为空表,树中可以没有结点,叫做空树,而图结构在国内大部分的教材中强调顶点集合V要有穷非空。

    3.线性表中,相邻的数据元素之间具有线性关系,树结构中,相邻两层的结点具有层次关系,而图结构中,任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示,边集可以是空的。

    图的各种奇葩定义

    无向边

    若顶点Vi到Vj之间的边没有方向,则称这条边为无向边(Edge),用无序偶(Vi,Vj)来表示。

    在这里插入图片描述

    上图G1是一个无向图,G1={V1,E1},其中
    V1={A,B,C,D},
    E1={(A,B),(B,C),(C,D),(D,A),(A,C)}

    有向边

    若从顶点Vi到Vj的边有方向,则称这条边为有向边,也成为弧(Arc),用有序偶<Vi,Vj>来表示,Vi称为弧尾,Vj称为弧头。

    在这里插入图片描述

    上图G2是一个有向图,G2={V2,E2},其中
    V2={A,B,C,D},
    E2={<B,A>,<B,C>,<C,A>,<A,D>}

    简单图

    在图结构中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。
    以下两个则不属于简单图:
    在这里插入图片描述

    无向完全图

    在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。含有n个顶点的无向完全图有n*(n-1)/2条边。
    在这里插入图片描述

    有向完全图

    在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图。含有n个顶点的有向完全图有n*(n-1)条边。
    在这里插入图片描述

    稀疏图和稠密图

    这里的稀疏和稠密是模糊的概念,都是相对而言的,通常认为边或弧数小于n*logn(n是顶点的个数)的图称为稀疏图,反之称为稠密图。

    有些图的边或弧带有与它相关的数字,这种与图的边或弧相关的数叫做权(Weight),带权的图通常称为网(Network)。

    子图

    假设有两个图G1=(V1,E1)和G2=(V2,E2),如果V2⊆V1,E2⊆E1,则称G2为G1的子图(Subgraph)。
    在这里插入图片描述

  • 相关阅读:
    面向对象程序设计(三)
    面向对象程序设计(二)
    Class.forName()方法抛出异常
    Android Developer -- Bluetooth篇 开发实例之二 连接设备
    Android Developer -- Bluetooth篇 开发实例之一 扫描设备
    Android Developer -- Bluetooth篇 概述
    Android的数据存储方式概述
    Android 更新UI的两种方法——handler和runOnUiThread()
    Android UI 常用图标尺寸规范
    Android单个控件占父控件宽度一半且水平居中
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338454.html
Copyright © 2011-2022 走看看