图的基本概念与数据结构

基本概念

  1. 图论中的图是由若干个给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。
  2. 一个图可以用数学语言描述为 G ( V ( G ) , E ( G ) ) G(V(G),E(G)) G(V(G),E(G))。V(vertex)指的是图的顶点集,E(edge)指的是图的边集。
  3. :设 v v v是边 e e e的端点,则称 v v v e e e相关联,与顶点 v v v关联的边数称为该顶点的度,记为 d ( v ) d(v) d(v)。度为奇数的顶点称为奇顶点,度为偶数的顶点称为偶顶点。所有顶点的度数之和是边数的2倍,由此可知奇顶点的总数是偶数。
  4. 道路:设 W = v 0 e 1 v 1 . . . e k v k W=v_0e_1v_1...e_kv_k W=v0e1v1...ekvk e i e_i ei v i − 1 v_{i-1} vi1 v i v_i vi关联,则称 W W W是图 G G G的一条道路。 v 0 v_0 v0是起点, v k v_k vk是终点,k为路长。
  5. :各相异的道路称为迹。
  6. 轨道:各顶点相异的道路称为轨道,记为 P ( v 0 , v k ) P(v_0,v_k) P(v0,vk) v 0 v_0 v0是起点, v k v_k vk是终点,k为路长。
  7. 回路:起点与终点重合的道路称为回路。
  8. :起点与终点重合的轨道称为回路。
  9. 连通图:图中任两顶点之间都存在道路的图称为连通图。
  10. 距离:顶点 u u u v v v的距离是顶点 u u u, v v v分别为起点和终点的最短轨道之长。

图的分类

图与网络的数据结构

假设 G = ( V , E ) G=(V,E) G=(V,E)是一个简单无向图,顶点集合 V = { v 1 , . . . , v n } V=\{v_1,...,v_n\} V={v1,...,vn},边集 E = { e 1 , . . . , e m } E=\{e_1,...,e_m\} E={e1,...,em},记 ∣ V ∣ = n , ∣ E ∣ = m |V|=n,|E|=m V=n,E=m

邻接矩阵表示法

  1. 邻接矩阵记为 W = ( w i j ) n × n W=(w_{ij})_{n\times n} W=(wij)n×n,当 G G G为赋权图时,有

w i j = { 权 值 , 当 v i 与 v j 之 间 有 边 时 权 值 , 当 v i 与 v j 之 间 有 边 时 w_{ij}=\begin{cases} 权值,&当v_i与v_j之间有边时\\ 权值,&当v_i与v_j之间有边时\\ \end{cases} wij={,,vivjvivj

  1. G G G为非赋权图时,有

w i j = { 1 , 当 v i 与 v j 之 间 有 边 时 0 , 当 v i 与 v j 之 间 有 边 时 w_{ij}=\begin{cases} 1,&当v_i与v_j之间有边时\\ 0,&当v_i与v_j之间有边时\\ \end{cases} wij={1,0,vivjvivj

  1. 当图的边数远小于顶点数时,邻接矩阵表示法表示会造成很大的空间浪费。

稀疏矩阵表示法

  1. 系数矩阵是指矩阵中零元素很多,非零元素很少的矩阵。稀疏矩阵存放非零元素的行标、列表、值。
  2. Matlab中,有向图的邻接矩阵转稀疏矩阵直接使用sparse命令,反过来用full命令
>> a=[1 0 0;0 5 0;3 0 0]

a =

     1     0     0
     0     5     0
     3     0     0

>> b=sparse(a)

b =

   (1,1)        1
   (3,1)        3
   (2,2)        5

>> full(b)

ans =

     1     0     0
     0     5     0
     3     0     0
  1. 对于无向图,邻接矩阵是对称阵,只需要使用下三角元素。
>> a=[1 0 3 ;0 0 1;3 1 0]

a =

     1     0     3
     0     0     1
     3     1     0

>> tril(a)

ans =

     1     0     0
     0     0     0
     3     1     0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_961876584

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值