Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nikalerka
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 77
#1

Считывать матрицу смежности и количество вершин из входного файла и выводить гамильтоновы циклы - C++

24.11.2010, 19:21. Просмотров 343. Ответов 0
Метки нет (Все метки)

Доброго времени суток!
Программа должна считывать матрицу смежности и количество вершин из входного файла и выводить гамильтоновы циклы в выходной. Программа запускается, но в выходной файл ничего не выводится. Я не могу понять в чем дело.
Помогите, пожалуйста!

#include<iostream.h>
#include <stdio.h>
typedef enum {false, true} bool;
FILE* fi=fopen("g_graph.txt","r");
FILE* fo=fopen("g_cycle.txt","w");
bool**graph;//Матрица смежности для хранения графа
int n;//Количество вершин в графе
const int vertex=1;//первая вершина при поиске
int *St;//Массив для хранения просмотренных вершин
int *Nnew;//Массив признаков: вершина просмотрена или нет
void out_way(int n)//Процедуры вывода Гамильтонова цикла
{
for(int i=0;i<n;i++)
fprintf(fo,"%d", St[i]);
fprintf(fo,"%dn",vertex);
}
void gamilton_path(int k)
{
int v=St[k-1];// текущая вершина
for(int j=0;j<n;j++)
if(graph[v][j]==1)//есть ребро между v и j
if(k==n && j==vertex)
out_way(n);//прошли все вершины
else
if(Nnew[j])//вершина не просмотрена
{
St[k]=j;//добавляем ее к пройденому пути
Nnew[j]=false;//просмотрена
gamilton_path(k+1);//строим путь дальше
Nnew[j]=true;//возвращаемся назад и строим другие циклы
}
}
int main()
{
fscanf(fi,"%d",&n);//считываем количество вершин
St=new int[n];
Nnew= new int[n];
for(int i=0;i<n;i++)
Nnew[i]=1;//нет просмотренных вершин
graph=new bool*[n];
for(int i=0;i<n;i++)
graph[i]=new bool[n];//выделяем память под строку
for(int j=0;j<n;j++)
{
fscanf(fi,"%d",&graph[i][j]);
}

Nnew[vertex]=false;//первая вершина уже просмотрена
St[0]=vertex;//вершина с которой начали проход
gamilton_path(1);//параметр означает количество пройденых вершин
fcloseall();
return(0);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 19:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывать матрицу смежности и количество вершин из входного файла и выводить гамильтоновы циклы (C++):

С матрицы смежности в матрицу инцидентности, список рёбер и вершин, диаграмма - C++
Помогите, пожалуйста. На C# или C++ нужна такая программа, что когда задается матрица смежности (5 на 5 можно) и выводились: 1) матрица...

Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер - C++
Всем доброго времени суток!!! Передо мной стоит задача: написать программу, которая выводит матрицу смежности графа с определенным...

Как считывать матрицу из файла? - C++
Как можно считать матрицу из файла по столбикам? Понятия не имею как можно это сделать, а надо. Матрица как на прикрепленном...

Преобразование списка смежности в матрицу смежности - C++
Помогите пожалуйста, нужно разработать алгоритм преобразования списка смежности в матрицу смежности, для неорентированного графа. И все...

Программа, которая копирует содержимое входного файла в выходной; подсчитывает количество слов в тексте... - C++
Написать программу, которая копирует содержимое входного файла в выходной; подсчитывает количество слов в тексте; выделяет слово,...

Получить матрицу смежности и напечатать для каждой вершины номера смежных вершин графа - C (СИ)
1,задан граф в виде количества вершин n&lt;=10 последовательности ребер . получить матрицу смежности.2, напечатать для каждой вершины номера...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2010, 19:21
Привет! Вот еще темы с ответами:

Гамильтоновы циклы: переписать код с C++ - VBA
доброе время суток! помогите плиз переписать код на vba целый вечер переписываю,но все безрезультатно( буду очень благодарен если...

Считывать имена файлов и выводить на экран только имя файла (вместо полного пути) - Bash
нужно считывать имена файлов и вывести на экран только имя файла а не полный путь

Вывести матрицу смежности и список смежности графа - C (СИ)
Всем привет!! Уважаемые форумчане, помогите плиз с заданием! Я написала код в Си по которому вводим матрицу инцидентности и выводим...

.NET 4.x В фоне считывать и выводить данные с COM-порта - C#
Доброго времени суток. Подскажите, как можно реализовать чтение входящие данные с последовательного порта и последующий их вывод в label?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru