#include #include #define INF 9999999 #define V 6 using namespace std; int G[V][V] = { {0, 5, 8, 7, 0, 0}, {5, 0, 0, 6, 0, 0}, {8, 0, 0, 4, 5, 0}, {7, 6, 4, 0, 3, 1}, {0, 0, 5, 3, 0, 2}, {0, 0, 0, 1, 2, 0}}; int main() { int no_edge; int selected[V]; memset(selected, false, sizeof(selected)); no_edge = 0; selected[0] = true; int x; int y; cout << "Edge" << " : " << "Weight"; cout << endl; while (no_edge < V - 1) { int min = INF; x = 0; y = 0; for (int i = 0; i < V; i++) { if (selected[i]) { for (int j = 0; j < V; j++) { if (!selected[j] && G[i][j]) { // not in selected and there is an edge if (min > G[i][j]) { min = G[i][j]; x = i; y = j; } } } } } cout << x << " - " << y << " : " << G[x][y]; cout << endl; selected[y] = true; no_edge++; } return 0; }