`
javasee
  • 浏览: 973331 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一步一步写算法(之prim算法 上)

 
阅读更多

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


前面我们讨论了图的创建、添加、删除和保存等问题。今天我们将继续讨论图的一些其他问题,比如说如何在图的环境下构建最小生成树。为什么要构建最小生成树呢?其实原理很简单。打个比方,现在某一个乡镇有n个村,那么这n个村肯定是联通的。现在我们打算在各个村之间搭建网线,实现村村通的工程。那么有什么办法可以实现村村互通,同时又使得最后的总距离最小呢?要达到这个目的,就必须在已有的图中构建最小生成树。


生成最小生成树的方法很多,prim方法就是其中的一种。那么生成最小生成树的基本步骤是什么呢?很简单,听我慢慢道来:

1)以某一个点开始,寻找当前该点可以访问的所有的边;

2)在已经寻找的边中发现最小边,这个边必须有一个点还没有访问过,将还没有访问的点加入我们的集合,记录添加的边;

3)寻找当前集合可以访问的所有边,重复2的过程,直到没有新的点可以加入;

4)此时由所有边构成的树即为最小生成树。

那么,代码应该怎么编写呢?朋友们可以自己好好思考一下。

a)首先,我们定义基本的数据结构。


b)DIR_LINE的基本操作


【未完,待续】

分享到:
评论

相关推荐

    prim算法(C语言编写)

    prim算法(C语言编写) 可以供学习参考使用

    prim算法 代码 报告

    Prim算法是一种经典的图论算法,用于寻找加权无向图中的最小生成树。最小生成树是连接图中所有顶点的树形子图,其边的权重之和最小。这个算法由Eugene Prim在1930年提出,是解决网络设计、资源分配等实际问题的重要...

    算法Prim.zip

    Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有...

    Prim算法 MATLAB实现_prim算法_

    Prim算法是解决这一问题的有效方法之一,尤其适用于稠密图。 在MATLAB中实现Prim算法,通常会遵循以下步骤: 1. **初始化**: 创建一个n×n的矩阵D,其中n是图中顶点的数量。D[i][j]表示顶点i到顶点j的边的权重。...

    Prim算法与Kruskal算法求最小生成树

    在这个问题中,Prim算法和Kruskal算法是两种常用的方法。 1. Prim算法: Prim算法是一种贪心策略,它从一个起始顶点开始,逐步添加边,每次添加一条与已选择顶点集形成最小权重边的新边。这个过程不断进行,直到...

    【老生谈算法】Matlab实现无约束条件下普列姆(Prim)算法.docx

    老生谈算法——Matlab 实现无约束条件下普列姆(Prim)算法 普列姆(Prim)算法是一种常用的最小生成树算法,用于解决无约束条件下的最小生成树问题。该算法的主要思想是通过选择最小权边来不断扩展树的规模,直到...

    PRIM算法

    PRIM算法在计算网络中最低成本连接、设计高效通信网络、解决交通规划等问题上有着广泛的应用。例如,在互联网路由设计中,可以通过找到最小生成树来构建最短路径树,使得数据传输更加高效。 总结起来,PRIM算法是一...

    代码 最小生成树Prim算法代码

    代码 最小生成树Prim算法代码代码 最小生成树Prim算法代码代码 最小生成树Prim算法代码代码 最小生成树Prim算法代码代码 最小生成树Prim算法代码代码 最小生成树Prim算法代码代码 最小生成树Prim算法代码代码 最小...

    一步一步写算法

    18. 克鲁斯卡尔算法和普里姆算法(prim算法)是用于最小生成树问题的两种不同算法。克鲁斯卡尔算法从边出发构造最小生成树,而普里姆算法从顶点出发。 19. A*算法是寻路算法的一种,广泛应用于游戏设计和机器人导航...

    cpp-图论算法最小生成树Prim算法和Kruskal算法C实现

    本文将详细介绍两种经典算法来解决最小生成树问题:Prim算法和Kruskal算法,并以C语言实现为例进行讲解。 ### Prim算法 Prim算法是一种贪心算法,其基本思想是从一个初始节点开始,逐步添加最短的边,直到连接到...

    邻接矩阵 Prim算法

    邻接矩阵 Prim 算法,C++完美实现,数据结构作业。

    Prim算法的cpp实现

    Prim算法的cpp实现

    Prim算法的C语言实现

    Prim算法的C语言实现,原创,算法课作业

    基于MATLAB的最小生成树Prim算法 源代码程序.rar

    Prim算法由捷克数学家Vojtěch Jarník于1930年提出,并由美国计算机科学家Robert C. Prim在1957年再次独立发现。其基本思想是从一个初始顶点开始,逐步扩展最小生成树,每次添加一条与当前树连接且权重最小的边。...

    Prim算法动态演示

    "动态演示"意味着该程序在运行时会实时显示Prim算法的每一步,帮助用户理解算法的执行过程。当用户点击菜单触发特定功能时,程序将动态地构建最小生成树,使得学习者能够直观地看到算法如何逐步选择边并形成最小生成...

    Dijkstra_Huffman_Prim.rar_dijkstra算法_、 Prim 算法_实验报告_算法 报告_算法 实验

    Prim算法从一个起始节点开始,逐步添加边,使得每一步增加的边都连接了已选节点集与未选节点集,且增加的边具有最小权重。这一过程持续进行,直到所有节点都被包含在内,形成一棵树。 在Prim算法中,我们可以使用...

    邻接表prim算法

    ### 邻接表Prim算法知识点解析 #### 一、Prim算法概述 Prim算法是一种用于寻找加权无向图中的最小生成树(Minimum Spanning Tree, MST)的算法。所谓最小生成树,是指在一个连通的加权无向图中找到一棵包含所有顶点...

    prim算法的实现

    **prim算法详解** Prim算法,由捷克数学家Vojtěch Jarník于1930年提出,并由美国计算机科学家Robert C. Prim在1957年独立发现,因此得名Prim算法。它是解决图论中的一个重要问题——寻找加权无向图的最小生成树...

    图及其算法(邻接矩阵实现)-prim算法

    DFSBFSDijkstraFloydPrim prim算法 prim算法 prim算法 prim算法 prim算法

Global site tag (gtag.js) - Google Analytics