Реферат: Графы. Решение практических задач с использованием графов (С++)
if(eiler(graph,n))eiler_path(graph);
else fprintf(fo,"Граф не является эйлеровым.");
return(0);
}
3.Построить остовное дерево минимальной стоимости для связанного взвешенного графа, используя алгоритм Прима.
#include <iostream.h>
#include <stdio.h>
#include <values.h>
FILE* fi = fopen("p_graph.txt","r"); //Входной файл
FILE* fo = fopen("p_ostov.txt","w"); //Выходной файл
struct edge{ // Структура для хранения ребра
int b,e;
int weigh;
};
int **graph; // исходный граф
int p; // количество вершин в графе
edge *SST; // остов
int num_ver=0; // количество ребер в остове
int *S; // вершины, включенные в остов
int num_s=0; //количество вершин в остове
int calc_ver(){ // подсчитывает число ребер в графе
int i=0,j,res=0;
while(i<p){j=i+1; while(j++<p)if(graph[i][j])res+=1; i++;}
return res;
}
bool added(int v){ // проверяет: добавлена вершина v в остов
for(int i=0;i<num_s;i++)if(v==S[i])return 1;
return 0;
}