Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 20.10.2018
Сообщений: 10
1

Не работает алгоритм обхода графа в глубину. Логически вроде всё верно, не могу допереть что не так

03.04.2019, 16:21. Просмотров 341. Ответов 2
Метки нет (Все метки)


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <stdlib.h>
int i,j;
 
void read(int ***mat,int *n);
void dfs(int ***mat,int *n,int start);
int main()
{
    int n=11,start;
    int ***mat=(int***)malloc(n*sizeof(int**));
    for(i=0;i<n;i++)
    {   
        mat[i]=(int**)malloc(n*sizeof(int*));
        for(j=0;j<n;j++)    
            mat[i][j]=(int*)calloc(2,sizeof(int));
    }
    read(mat,&n);
    printf("\n>>Introduce-ti virful initial: "); 
    scanf("%d",&start); //вершина, с которой начинаем 
    dfs(mat,&n,start);
    
}
 
void read(int ***mat,int *n)
{
    printf("Matricea:\n\n");
    FILE *graph=fopen("dfs.txt","r");
    for(i=0;i<*n;i++)
    {
        for(j=0;j<*n;j++)
        {   
            fscanf(graph,"%d",&mat[i][j][0]);
            printf("%d ",mat[i][j][0]);
        }
        printf("\n");
    }
}
 
void dfs(int ***mat,int *n,int start)
{
    printf("%d ",start);
    for(i=0;i<*n;i++)
    {
        if(mat[start][i][0]==1 && mat[start][i][1]==0)
        {       
            mat[start][i][1]=1;
            dfs(mat,&n,i);
        }
        else continue;
    }
}
Граф:
0 1 0 1 0 1 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 1 0 0
1 1 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2019, 16:21
Ответы с готовыми решениями:

Программа обхода графа в ширину и глубину.
Уважаемые программисты. Нужно помощь. Необходим код программы(Delphi) которая построит древовидный...

Реализация обхода графа в глубину (DFS)
Всем здравствуйте! Задача такова реализация обхода не взвешенного дерева, который задан матрицей...

Написать программу с использованием алгоритма обхода графа в глубину
Помогите пожалуйста. Заранее спасибо! Задание: 1. Написать программу с использованием...

ДМ. Логически доказать равенство; и что вложение верно, а обратное не верно; построить формулу
Здравствуйте, я понимаю, что тут не любители отвечать очередному Васе Пупкину. Но всё-же, буду...

2
Модератор
Эксперт Python
28384 / 15282 / 3012
Регистрация: 12.02.2012
Сообщений: 25,016
Записей в блоге: 4
03.04.2019, 16:31 2
Зачем там трехмерные массивы?
0
0 / 0 / 0
Регистрация: 20.10.2018
Сообщений: 10
03.04.2019, 17:29  [ТС] 3
Хотел записывать там состояние вершины. Сделал отдельный одномерный массив чтобы хранить там состояния, но всё равно не работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2019, 17:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Что то пошло не так, писал вроде все верно по примеру другой программы
Вот сама задача: Данные о Видеокассетах содержат: номер кассеты, название фильма H его...

Организовать поиск и печать ветвей генеалогического древа с помощью обхода графа в «глубину»
Генеалогическое дерево некоторого рода представлено графом не более 12 вершин. Узел каждой вершины...

Вроде не тяжелый алгоритм, но что то не так
Есть число 12021994 Оно представляет собой дату. Как из числа &quot;достать&quot; 02. То есть присвоить...

Методом обхода в глубину определить число компонент связности и цикломатическое число графа
Методом обхода в глубину определить число компонент связности и цикломатическое число графа –...


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

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

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