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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод трёх переменных http://www.cyberforum.ru/cpp-beginners/thread196912.html
Самое простое задание, которое можно себе представить, не получается решить. Подозреваю неправильную постановку задачи, но, всё-таки, может руки кривые совсем у меня. Текст задания: Введите три переменные r (тип const float), simbol (тип char), и flag (тип bool). Их значение определите с помощью оператора scanf. Выведите на экран значение переменных в строку, используя оператор printf,...
C++ Является ли число степенью другого числа Нужна функция которая проверяет, является ли число степенью какого либо другого числа. Ломаю голову, но пока не смог придумать как это сделать. http://www.cyberforum.ru/cpp-beginners/thread196908.html
Проверка простоты чисел C++
Ребят,вот прожка...проверка простоты чисел на основе малой теоремы ферма... #include "stdafx.h" #include <iostream> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std;
Вычислить s=cos(1+cos(2+....+cos(39+cos40) C++
Вычислить s=cos(1+cos(2+....+cos(39+cos40) помогите
C++ Массивы классы и функции http://www.cyberforum.ru/cpp-beginners/thread196870.html
Здравствуйте мне дали задание на оценку но я не совсем понимаю его. Не могли бы вы объяснить какие примерно нужно использовать функции и библиотеки для решения этой задачи. Я попробую её сделать сам и если возникнут проблемы или ошибки компеляции я задал бы дополнительные вопросы. Вот задание Создать класс, генерирующий систему логичеcких функций с заданными параметрами n –число входных...
C++ Структурные типы данных Ввести данные в табл. 2. Расположить в исходной таблице ФИО по алфавиту. Выполнить кодирование информации, применив метод Гронсвельда, основанный на использовании цифрового ключа и модификации обычной системы Юлия Цезаря. Так, например, ключ 3021 дает шифрограмму слова "программа" следующим образом: ключ 3 0 2 1 3 0 2 1 3 текст П Р О Г Р А М М А шифр Т Р Р Д У А О Н Г Для шифрования... подробнее

Показать сообщение отдельно
nikalerka
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 77

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

24.11.2010, 19:21. Просмотров 335. Ответов 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);
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru