您的位置:首页 > 编程语言 > PHP开发

windows 2008 r2 安装php5.5+mysql+mssql+sqlsrv

2016-04-15 11:49 676 查看
#include <iostream>using namespace std;
struct Mgraph{ int vexnum; int arcnum; char *vertex; int **AdjMatrix; }; class Graph{ public: void CreateUDN(); void DestroyUDN(); void Minispantree_prim(); private: Mgraph gph; //邻接矩阵存储};
void Graph::CreateUDN(){ cout << "输入无向网的顶点数和边数:" << endl; cin >> gph.vexnum >> gph.arcnum; gph.vertex = (char *)malloc(gph.vexnum * sizeof(char)); int i,j,m,n; //m,n表示顶点信息对应的序号,w是权值 int w; char v1,v2; cout << "输入顶点信息:" << endl; for(i = 0;i < gph.vexnum;i++) cin >> gph.vertex[i]; gph.AdjMatrix = (int **)malloc(gph.vexnum * sizeof(int *)); for(i = 0;i < gph.vexnum;i++) gph.AdjMatrix[i] = (int *)malloc(gph.vexnum * sizeof(int)); for(i = 0;i < gph.vexnum;i++) for(j = 0;j < gph.vexnum;j++) gph.AdjMatrix[i][j] = INT_MAX; //INT_MAX cout << "输入一条边依附的两点及权值:" << endl; for(int k = 0;k < gph.arcnum;k++) { cin >> v1 >> v2 >> w; for(i = 0;i < gph.vexnum;i++) { if(v1 == gph.vertex[i]) m = i; if(v2 == gph.vertex[i]) n = i; } gph.AdjMatrix[m]
= gph.AdjMatrix
[m] = w; }}

void Graph::DestroyUDN(){ free(gph.vertex); for(int i = 0;i < gph.vexnum;i++) free(gph.AdjMatrix[i]); free(gph.AdjMatrix);} void Graph::Minispantree_prim(){ struct closedge { int adjvex; int lowcost; }; closedge *edge = (closedge *)malloc(gph.vexnum * sizeof(closedge)); int i,j,k = 0,u; int min; for(i = 0;i < gph.vexnum;i++) { if(i != k) { edge[i].adjvex = 0; edge[i].lowcost = gph.AdjMatrix[k][i]; } } edge[k].lowcost = 0; cout << "最小生成树的边如下:" << endl; for(i = 1;i < gph.vexnum;i++) { min = INT_MAX; for(j = 0;j < gph.vexnum;j++) if(edge[j].lowcost != INT_MAX &&edge[j].lowcost != 0 && edge[j].lowcost < min) { min = edge[j].lowcost; k = j; } u = edge[k].adjvex; edge[k].lowcost = 0; cout << "(" << gph.vertex[u] << "," << gph.vertex[k] << ")" << " "; for(j = 0;j < gph.vexnum;j++) if(gph.AdjMatrix[j][k] < edge[j].lowcost) { edge[j].lowcost = gph.AdjMatrix[j][k]; edge[j].adjvex = k; } } free(edge); cout << endl;}
int main(){ Graph gph; gph.CreateUDN(); gph.Minispantree_prim(); gph.DestroyUDN(); return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: