Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // AlgPrima.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <math.h>
- #include <time.h>
- using namespace std;
- class Graph {
- public:
- int M[5][5];
- int Result[4][2];
- // Отобранные вершины
- int V[5];
- Graph(){
- for(int i=0;i<5;i++){
- M[i][i]=-1;
- }
- for(int i=1;i<5;i++){
- for(int j=0;j<i;j++){
- M[i][j]=rand()%10+1;
- M[j][i]=M[i][j];
- }
- }
- for(int i=0;i<5;i++){
- V[i] = -1;
- }
- V[0] = 0;
- }
- void Show(){
- for(int i=0;i<5;i++){
- for(int j=0;j<5;j++){
- cout<<M[i][j]<<"\t";
- }
- cout<<"\n";
- }
- }
- void Search(){
- bool Ib, Jb;
- int min,imin,jmin;
- for (int k=0; k<4; k++) {
- Ib = false;
- Jb = false;
- min = 999;
- for(int i=1;i<5;i++){
- Ib = Proverka(i);
- for(int j=0;j<i;j++){
- Jb = Proverka(j);
- if (Ib && Jb) {
- continue;
- }
- if (Ib || Jb) {
- if(M[i][j]<min){
- min=M[i][j];
- imin=i;
- jmin=j;
- }
- }
- }
- }
- Result[k][0] = imin;
- Result[k][1] = jmin;
- V[k+1] = Proverka(imin) ? jmin : imin;
- }
- }
- void Ostov()
- {
- for (int k=0; k<4; k++) {
- cout<<"("<<Result[k][0]<<";"<<Result[k][1]<<") = "<<M[Result[k][0]][Result[k][1]]<<endl;
- }
- }
- bool Proverka(int i)
- {
- for(int k=0;k<5;k++){
- if (V[k] == i) {
- return true;
- }
- }
- return false;
- }
- };
- int main()
- {
- setlocale(LC_CTYPE, "Rus");
- srand(unsigned(time(NULL)));
- Graph G;
- G.Show();
- G.Search();
- G.Ostov();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement