详谈数据结构--图

文章目录图1. 图的概念2. 图的存储2.1 邻接矩阵2.2 邻接表3. 图的遍历3.1 深度优先遍历(DFS)3.2 广度优先遍历(BFS)4. 最短路径4.1 Dijkstra算法4.2 Floyd算法5. 最小生成树--Prim算法图图(Graph)是由顶点和连接顶点的边构成的离散结构。在计算机科学中,图是最灵活的数据结构之一,很多问题都可以使用图模型进行建模求解。例如:生态环境中不同物种的相互竞争、人与人之间的社交与关系网络、化学上用图区分结构不同但分子式相同的同分异构体、分析计算机网络的拓扑结
摘要由CSDN通过智能技术生成

图(Graph)是由顶点和连接顶点的边构成的离散结构。在计算机科学中,图是最灵活的数据结构之一,很多问题都可以使用图模型进行建模求解。例如:生态环境中不同物种的相互竞争、人与人之间的社交与关系网络、化学上用图区分结构不同但分子式相同的同分异构体、分析计算机网络的拓扑结构确定两台计算机是否可以通信、找到两个城市之间的最短路径等等。

1. 图的概念

图的结构很简单,就是由顶点 V VV 集和边 E EE 集构成,因此图可以表示成 G = ( V , E ) G=(V, E)G=(V,E) 。
图1-1:无向图
图1-1:无向图1

图1-1就是无向图,我们可以说这张图中,有点集 V = { 1 , 2 , 3 , 4 , 5 , 6 } V={1, 2, 3, 4, 5, 6}V={1,2,3,4,5,6},边集E = { ( 1 , 2 ) , ( 1 , 5 ) , ( 2 , 3 ) , ( 2 , 5 ) , ( 3 , 4 ) , ( 4 , 5 ) , ( 4 , 6 ) } E={(1, 2), (1, 5), (2, 3), (2, 5), (3, 4), (4, 5), (4, 6)}E={(1,2),(1,5),(2,3),(2,5),(3,4),(4,5),(4,6)} 。在无向图中,边( u , v ) (u, v)(u,v)和边( v , u ) (v, u)(v,u)是一样的,因此只要记录一个就行了。简而言之,对称。
图1-2:有向图
图1-2:有向图 2
有向图也很好理解,就是加上了方向性,顶点( u , v ) (u, v)(u,v)之间的关系和顶点( v , u ) (v,u)(v,u)之间的关系不同,后者或许不存在。例如,地图应用中必须存储单行道的信息,避免给出错误的方向。

加权图:与加权图对应的就是无权图,如果觉得不好听,那就叫等权图。如果一张图不含权重信息,我们就认为边与边之间没有差别。不过,具体建模的时候,很多时候都需要有权重,比如对中国重要城市间道路联系的建模,总不能认为从北京去上海和从北京去广州一样远(等权)。

还有很多细化的概念,有兴趣的自己了解咯。我觉得就没必要单独拎出来写,比如:无向图中,任意两个顶点间都有边,称为无向完全图;加权图起一个新名字,叫网(network)……然而,如无必要,毋增实体。

两个重要关系:

  • 邻接(adjacency):邻接是两个顶点之间的一种关系。如果图包含( u , v ) (u,v)(u,v),则称顶点v vv与顶点u uu邻接。当然,在无向图中,这也意味着顶点u uu与顶点v vv邻接。
  • 关联(incidence):关联是边和顶点之间的关系。在有向图中,边( u , v ) (u,v)(u,v)从顶点u uu开始关联到v vv,或者相反,从v vv关联到u uu。注意,有向图中,边不一定是对称的,有去无回是完全有可能的。

细化关联这个概念,就有了顶点的入度(in-degree)**和**出度(out-degree)。无向图中,顶点的度就是与顶点相关联的边的数目,没有入度和出度。在有向图中,我们以图1-2为例,顶点10有2个入度,3 → 10 3\rightarrow103→10,11 → 10 11\rightarrow1011→10,但是没有从10指向其它顶点的边,因此顶点10的出度为0。

路径(path):依次遍历顶点序列之间的边所形成的轨迹。注意,依次就意味着有序,先1后2和先2后1不一样。

简单路径:没有重复顶点的路径称为简单路径。说白了,这一趟路里没有出现绕了一圈回到同一点的情况,也就是没有
图1-3:四顶点的有向带环图
图1-3:四顶点的有向带环图3

:包含相同的顶点两次或者两次以上。图1-3中的顶点序列< 1 , 2 , 4 , 3 , 1 > <1,2,4,3,1><1,2,4,3,1>,1出现了两次,当然还有其它的环,比如< 1 , 4 , 3 , 1 > <1,4,3,1><1,4,3,1>。

无环图:没有环的图,其中,有向无环图有特殊的名称,叫做DAG(Directed Acyline Graph)(最好记住,DAG具有一些很好性质,比如很多动态规划的问题都可以转化成DAG中的最长路径、最短路径或者路径计数的问题)。
下面这个概念很重要:
图1-4:两个连通分支
图1-4:两个连通分支

连通的:无向图中每一对不同的顶点之间都有路径。如果这个条件在有向图里也成立,那么就是强连通的。图1-4中的图不是连通的,我丝毫没有侮辱你智商的意思,我只是想和你说,这图是我画的,顶点标签有点小,应该看到a和d之间没有通路。

2. 图的存储

图的存储方式有两种:邻接矩阵和邻接表。两种存储方式各有优势,需要在不同情况下选择使用。

2.1 邻接矩阵

图的邻接矩阵的存储方式是用两个数组来实现的&#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue中的link和router-link都是用来进行路由跳转的。它们之间的区别在于使用方式和功能。 link是一种传统的a链接,在Vue中可以使用<a>标签来创建link。它的使用方式是通过href属性指定目标路由的路径来实现跳转。link可以在Vue中进行静态页面的导航,但无法进行动态路由的跳转。 而router-link是Vue Router提供的一种声明式的路由跳转组件。它可以直接在模板中使用,并且会自动渲染成一个<a>标签。router-link的使用方式是通过to属性指定目标路由的路径来实现跳转。与link不同的是,router-link可以实现动态路由的跳转,可以通过传递参数来生成对应的URL路径。 除了使用方式的不同,router-link还可以通过设置属性来控制跳转的行为,比如可以设置是否在新窗口打开链接、是否激活当前路由等。 总之,link是一种传统的a链接,用于静态页面的导航;而router-link是Vue Router提供的声明式路由跳转组件,用于实现动态路由的跳转。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span> #### 引用[.reference_title] - *1* [详谈vue中router-link和传统a链接的区别](https://download.csdn.net/download/weixin_38673738/12924831)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* *4* [Vue--Router--router-link与this.$router.push--使用/区别](https://blog.csdn.net/feiying0canglang/article/details/126215335)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蔚蓝不远

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

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

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

打赏作者

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

抵扣说明:

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

余额充值