Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Prim.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- int A[10][10];
- void Prim(int n)
- {
- int u, v, k, v1, u1;
- int vertex[20];
- int T[2][10];
- for (int i = 0; i <= 11; i++) {
- vertex[i] = 0;
- }
- vertex[1] = 1;
- k = 1;
- for (int i = 1; i <= n; i++)
- {
- int min = 100;
- for (u = 1; u <= n; u++) {
- for (v = u + 1; v <= n; v++)
- {
- if ((A[u][v] < min) && (vertex[u] == 1) && (vertex[v] == 0))
- {
- min = A[u][v];
- v1 = v;
- u1 = u;
- }
- cout << v1 << " " << u1 << " " << endl;
- }
- }
- T[0][i] = u1;
- T[1][i] = v1;
- vertex[v1] = 1;
- }
- for (int i = 0; i <= 1; i++) {
- for (int j = 1; j < n; j++) {
- cout << T[i][j] << " ";
- }
- cout << endl;
- }
- }
- int main()
- {
- setlocale(0, "");
- int n, m, x, y, c;
- cout << "кол-во вершин, кол-во ребер " << endl;
- cin >> n >> m;
- for (int i = 1; i <= n; i++)
- for (int j = 1; j <= n; j++)
- A[i][j] = 100;
- for (int i = 1; i <= m; i++) {
- cout << "откуда куда вес" << endl;
- cin >> x >> y >> c;
- A[x][y] = c;
- A[y][x] = c;
- }
- for (int i = 1; i <= n; i++) {
- for (int j = 1; j <= n; j++)
- cout << A[i][j] << " ";
- cout << endl;
- }
- Prim(n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement