Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой проект алгоритм прима.docx
Скачиваний:
124
Добавлен:
07.06.2018
Размер:
254.82 Кб
Скачать

Приложение а.

(Обязательное)

Текст основной программы.

#include<stdio.h>

#include<stdlib.h>

#include<iostream>

#include<conio.h>

#include<time.h>

using namespace std;

int a,b,u,v,n,i,j,N=1;

int visited[101]={0},_min,_mincost=0,cost[101][101];

void main()

{

setlocale(LC_ALL, "Russian");

srand(time(NULL));

printf("\n Введите кол-во вершин :");

scanf("%d",&n);

printf("\n Элементы матрицы %i*%i:\n",n,n);

float t=clock()/100;

for(i=1;i<=n;i++)

{

for(j=1;j<=n;j++)

{

//scanf("%d",&cost[i][j]);

if (i==j) cost[i][j]=0; else cost[i][j]=0+rand()%15;

cout<<cost[i][j]<<"\t";

if(cost[i][j]==0)

cost[i][j]=999;

}

printf("\n");

}

visited[1]=1;

printf("\n");

while(N<n) // N - номер вершины

{

for(i=1,_min=999;i<=n;i++)

for(j=1;j<=n;j++)

if(cost[i][j]<_min)

if(visited[i]!=0)

{

_min=cost[i][j];

a=u=i;

b=v=j;

}

if(visited[u]==0 || visited[v]==0)

{

printf("\n Ребро %d:(%d %d) вес:%d",N++,a,b,_min);

_mincost+=_min;

visited[b]=1;

}

cost[a][b]=cost[b][a]=999;

}

float tt=clock()/100-t;

printf("\n Время выполнения алгоритма: %f",tt);

printf("\n Вес минимального остовного дерева=%d",_mincost);

getch();

}

14