最小生成树-prim算法
来源:互联网 发布:开淘宝企业店流程 编辑:程序博客网 时间:2024/05/18 00:36
//邻接数组表示法#include<iostream>#define MAX 7#define INF 999999using namespace std;int graph[MAX][MAX] = { 0 };int flag = 0; //0为无向图 1为有向图 int mincount[MAX];void init(void){int i, j;for (i = 0; i<MAX; i++)for (j = 0; j<MAX; j++)graph[i][j] = INF;}void prim(int s){int i, j, min, flag, count = 0;for (i = 0; i<MAX; i++)mincount[i] = graph[s][i];mincount[s] = 0;for (i = 0; i<MAX-1; i++){min = INF;for (j = 0; j<MAX; j++){if (mincount[j]<min&&mincount[j] != 0){flag = j; min = mincount[j];}}mincount[flag] = 0;cout << "->"<<flag;count += min;for (j = 0; j<MAX; j++)if (graph[flag][j]<mincount[j])mincount[j] = graph[flag][j];}cout <<endl<< count << endl;}void printGraph(){int i, j;cout << '\t';for (i = 0; i<MAX; i++)cout << i << '\t';cout << endl;for (i = 0; i<MAX; i++){cout << i;for (j = 0; j<MAX; j++)cout << '\t' << graph[i][j];cout << endl;}}void GreatGraph(int start, int end, int weight){graph[start][end] = weight;if (flag == 0){graph[end][start] = weight;}}int main(void){int start, end, weight, n, i, begin;init();cout << "请输入(0:无向图 1:有向图):";cin >> flag;cout << "请输入要添加的边数:";cin >> n;for (i = 1; i <= n; i++){cin >> start >> end >> weight;GreatGraph(start, end, weight);}//printGraph();cout << "请输入开始遍历的结点:";cin >> begin;prim(begin);return 0;return 0;}
0 0
- Prim最小生成树算法
- 最小生成树Prim算法
- 最小生成树Prim算法
- 最小生成树----Prim算法
- 最小生成树Prim算法
- Prim 最小生成树算法
- 最小生成树:Prim算法
- Prim算法 ----最小生成树
- 最小生成树-prim 算法
- 最小生成树(prim算法)
- 最小生成树 prim算法
- 最小生成树 prim算法
- Prim最小生成树算法
- 最小生成树prim算法
- 最小生成树--prim算法
- 最小生成树Prim算法
- 最小生成树(Prim算法)
- 最小生成树----Prim算法
- Android布局控件相同属性的简单写法style
- Java中关于String类型的10个问题
- Retina 显示屏的网页图片兼容方案
- Implement atoi to convert a string to an integer.
- 银河英雄传说(并查集)
- 最小生成树-prim算法
- SqlServer索引及优化详解
- web前端之JavaScript高级程序设计六:事件
- eclipse中的project->clean做了什么
- web页面
- Zookeeper的启动流程
- C++json文件的使用
- Android拿到JSON后用Handler传递解析
- 循环结构