📄 maxst.h
字号:
#ifndef MAXST_H
#define MAXST_H
#include "GraphM.h"
void MaxST(Graph* G, int& s, Graph* max)
{
int *V;
V = new int(G->n());
int *D;
D = new int[G->n()];
for (int i = 0; i < G->n(); i++)
{
D[i] = 0;
V[i] = 0;
}
int d;
G->setMark(s, VISITED);
d = s;
D[d] = 0;
for (int j = 0; j < G->n(); j++)
if (G->getMark(j) == UNVISITED && D[j] < G->weight(d, j))
{
D[j] = G->weight(d, j);
V[j] = d;
}
int k;
for (i = 1; i < G->n(); i++)
{
k = 0;
for (j = 0; j < G->n(); j++)
if (D[k] < D[j])
k = j;
G->setMark(k, VISITED);
max->setEdge(V[k], k, G->weight(V[k], k));
d = k;
D[d] = 0;
for (j = 0; j < G->n(); j++)
if (G->getMark(j) == UNVISITED && D[j] < G->weight(d, j))
{
D[j] = G->weight(d, j);
V[j] = d;
}
}
cout << max->e() << endl;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -