18.0、C语言数据结构——图 ( 1 )

18.0、C语言数据结构——图 ( 1 )

        在前边讲解的线性表中,每个元素之间只有一个直接前驱和一个直接后继,在树形结构中,数据元素之前是层次关系,并且每一次上的数据元素可能和下层中多个元素相关,但可能和上层中一个元素相关;

        图(Graph)是由定点的有穷非空集合和定点之间边额集合组成,通常表示为:G(V,E),其中,G 表示一个图,V 是图 G 中顶点的集合,E 是图 G 中边的集合;

对于图的定义,我们需要明确几个注意的地方:

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

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

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

        无向边:若顶点 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 V2 , E2 E1,则称 G2 为 G1 的子图(Subgraph)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值