借鉴dijstra写的prim算法

原创 2015年11月20日 21:07:46

在挑战程序设计竞赛那本书上看prim代码,总感觉别扭,而我又不喜欢那种代码方式,比较喜欢dijstra采用优先队列的顺序,所以就自己写了一个用优先队列的prim算法,用于日后使用。


贴代码:


#include <cstdio>
#include <iostream>
#include <queue>
#include <utility>
#include <cstring>
#include <string>
#include <vector>

using namespace std;

int N,M;//N个点,M个边
const int V_MAX = 100;
const int INF = 1<<31 - 1;

typedef struct edge
{
    int to, cost;
    edge(int a, int b){
        to = a;
        cost = b;
    }
}edge;
typedef pair<int ,int> P;

vector<edge > G[V_MAX];
int used[V_MAX];

int prim()
{
    int sum = 0;
    priority_queue<P, vector<P>, greater<P> > pque;
    pque.push(P(0,1));

    while(!pque.empty())
    {
        P temp = pque.top();
        pque.pop();
        int V = temp.second;
        int cos = temp.first;
        if(used[V])continue;
        sum += cos;
        used[V] = 1;
        for(int i=0; i<G[V].size(); i++)
        {
            edge e = G[V][i];
            pque.push(P(e.cost, e.to));
        }
    }
    return sum;
}

int main()
{
    scanf("%d%d",&N,&M);
    for(int i=0; i<M; i++)
    {
        int fir,sec,thi;
        scanf("%d%d%d",&fir, &sec, &thi);
        G[fir].push_back(edge(sec,thi));
        G[sec].push_back(edge(fir,thi));
    }
    cout << prim() << endl;
}

该代码,仅测一份数据,且点的最大数为99
版权声明:虽然为本人原创,但是写得真是渣,想转就转,反正我也不是鸣人。

最小生成树(Prim算法)

  • 2015年06月13日 23:00
  • 2KB
  • 下载

Prim算法最小生成树(C语言)

  • 2014年10月16日 16:31
  • 516B
  • 下载

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

原贴地址:http://blog.csdn.net/feixiaoxing/article/details/6937338 【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:fe...
  • cnnbwr
  • cnnbwr
  • 2014年04月12日 08:14
  • 199

用Prim算法构造最小生成树

  • 2013年12月07日 20:18
  • 1KB
  • 下载

Prim算法矩阵存储结构

  • 2014年07月30日 11:55
  • 3KB
  • 下载

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

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】     前面我们讨论了图的创建、添加、删除和保存等问题。今天我们将继续讨论图的一些其...

prim算法最小生成树

  • 2008年02月19日 11:11
  • 31KB
  • 下载

实现构造最小生成树的Prim算法

  • 2016年12月14日 19:43
  • 3.42MB
  • 下载

最小生成树之prim算法

最小生成树之prim算法   最小生成树的概念在上一篇文章中已经叙述了,在这里主要再叙述一种解决最小生成树的算法--prim算法。   他其实和kruskal算法是互补的,一个从边出发,另一个从点...

最小生成树Prim算法

  • 2013年11月03日 22:07
  • 12KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:借鉴dijstra写的prim算法
举报原因:
原因补充:

(最多只允许输入30个字)