算法与数据结构笔记四


          摘录From大话数据结构。

 1.图

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

  

  需要注意的是,线性表中我们把数据元素叫做元素,树中将数据元素叫结点,在图中数据元素,我

我们则称之为 订单(Vertex).顶点的集合V有穷非空的。

   无向边:若顶点v1到v2之间的边没有方向,则称这条边为无向边(Edge),用无序偶对(vi,vj)来标示。

如果图中任意两个顶点之间的边都是无向边,则称该图为无向图。

   有向边:若从顶点vi到vj的边有方向,则称这条边为有向边,也成为弧(Arc),用有序偶<vi,vj>来表示,其中

vi成为弧尾(Tail),vj称为弧头(Head).如果图中任意两个顶点之间的边都是有向边,则称该图为有向图。比如顶点A指向顶点B的一个图,<A,D>标示弧,不能写成<D,A>。


  在图中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图,下面俩图是不满足的,不满足的!




  在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。如下:


在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图。

如下:


  结论:对于n个订单和e条边的图,无向图 0 <= e <=  n(n-1)/2,有向图 0 <=  e <= n (n-1)

   

   与图的边或弧相关的数叫权(Weight),带权的图成为网。

   连通图是指从一个顶点到另外一个顶点,一定有路径可以到达。

 还有其他图的一些概念。

 2.图的存储结构

   图的邻接矩阵存储方式是用两个数组来标示图,一个一维数组存储图中顶点信息,一个二维数组(成为邻接矩阵)

存储图中的边或弧的信息。如下:




邻接矩阵是不错的一种图存储结构,但是对于边数相对顶点较少的图,这种结构对存储空间是极大浪费的。比如下面的图,浪费空间:


我们用数组+链表结合的存储方式,即邻接表的方式来存储。


 

十字链表:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值