1、图的概念


               

  图由点集合和边集合组成,记做G=(V,E),其中点集合不能为空且应该有穷,边集合可以为空。树是一种特殊的图。但是树可以是空树,图不能是空图。图可以没有边,也就是说n个点也能称之为图。

  图分为无向图和有向图,上图中G1就是无向图,G2属于有向图。4是一个孤立顶点,也可以称之为图。


  ● 有向图:边有方向,用<Vi,Vj>表示,G2中顶点2到3的边和3到2的边是两条各自独立的边;

  ● 无向图:边没有方向,用(Vi,Vj)表示。

  ● 完全图:每两个顶点之间都有连线,有向完全图中每两个顶点之间有两条有向边;无向完全图每两个顶点之间有一条无向边。

  ● 路径和回路:路径是指从一个点到另外一个点走过的路径;回路是指从一个点出发再回到一个点的路径;简单回路是指中间没有重复经过的点。

  ● 连通图和连通分量:连通图是指任意两个点之间可以到达;在有向图中要求更严格,任意两点可以相互到达。连通分量是指把连通图分解成子连通图,一个子连通图就叫做一个父图的联通分量。

  ● 网络:边带有权值的图。


2、图的存储


  (1)邻接矩阵


    邻接矩阵反映的是顶点间的相邻关系。一个n行n列的矩阵表示由n个顶点的图,如果(i,j)或者<i,j>属于边集合,则矩阵中第i行j列的值为1,否则为0。

    以下图无向图为例:


                  


    它的邻接矩阵就是:


                


    有向图的邻接矩阵示例:


              


    对于网络的邻接矩阵,规则如下:


           


    有邻接边的话,将要把1换成该边的权值,示例如下:


            


    发现:无向图的邻接矩阵是对称的;有向图的邻接矩阵是非对称的。对于无向图而言,邻接矩阵第i行的和为邻接顶点i的度;对于有向图,邻接矩阵第i行表示的和是顶点i的出度,第i列的和表示顶点i的入度。


  (2)邻接表


    邻接表又称邻接链表,它首先把每个顶点的邻接顶点用链表表示出来,这样n个顶点就有n个链表。然后用一个一维数组存储没个链表的头指针,第i个链表中的结点表示与顶点i相关的边。

    例如下图:


            


    其邻接表为:


            


3、图的遍历


  图的遍历分为深度优先和广度优先两种,其两种方式的异同点如下表:


       





  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值