Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 77

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

24.11.2010, 19:21. Показов 2430. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2010, 19:21
Ответы с готовыми решениями:

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

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

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2010, 19:21
Помогаю со студенческими работами здесь

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

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

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

В заданном неориентированном графе найти все Гамильтоновы пути, соединяющие указанную пару вершин
Здравствуйте. Задание: в заданном неориентированном графе найти все гамильтоновы пути, соединяющие указанную пару вершин. Первая программа...

Из списка смежности в матрицу смежности. Выполнить обход графа глубину
Помогите пожалуйста с программой: Дан список смежности. Преобразовать в матрицу смежности. Выполнить обход графа в глубину. Заранее...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru