数据结构-6.4图

前言-数据结构

数据结构是需要反复咀嚼,不管什么时候都可以重中获取现在在开发中的遇到的问题答案。

生成树

图->生成树

  • 深度优先搜索生成树 广度优先搜索生成树

  • 在图论中,常常将树定义为无回路的连通图,例如,如下就是两个没有回路的连通图。乍一看似乎不是树,但只要选定某个顶点做根并以数为起点对每条边定向,就可以将它们变为通常的树。如果没有回路的图,就可以把它生成为树
    在这里插入图片描述

  • 使用深度和广度优先搜索可以变成树
    在这里插入图片描述

  • 变成如下
    在这里插入图片描述
    在这里插入图片描述

图->最小生成树(无向网)

  • 是指带权的图 生成树中边上权值和最小 若生成树中每条边上的权值最小,称为最小生成树(普里姆(prim)算法和克鲁斯卡尔(kelusikare)算法)
普里姆(prim)算法:
  • Kruskal算法因为只与边相关,则适合求稀疏图的最小生成树
  • 在图中任取一个顶点K作为开始顶点,令U={k},W = V(图中所有顶点集合) - U(剩下的顶点,是最短的一条边,也就是权最小 并且作为最小生成树的边保存起来),一开始W是所有的顶点,知道最后W为空就完成算法
  • 例子:注意虚线、∞
    • step1
      在这里插入图片描述
    • step2
      在这里插入图片描述
    • step3 (这里可以任选2,5因为两条边一样大的权然后再看一遍图中的根哪个权最小,继续连接) u = {1,3,6} w = {2,4,5} 在这里插入图片描述
    • step最后(一共有6个顶点,5条边(因为生成的是树) + 初始化,一共六步骤)
      在这里插入图片描述
克鲁斯卡尔(kruskal)算法
  • prime算法因为只与顶点有关,所以适合求稠密图的最小生成树
  • 将所有边按权递增
  • 挑选最小的边,不能与前面的边构成回路
  • 直到n个顶点有n-1条边结束,此时的树就是权值最小的最小生成树
  • 例子:克鲁斯卡尔最小生成树的过程
    • 其中的权都是先知道的
      在这里插入图片描述

例题

  • 下面()算法适合构成一个稠密图G的最小生成树
    • A Prim
    • B Kruskal
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值