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

Как представить на яыке с++ образуют ли ребра графа цикл или нет ? - C++

Восстановить пароль Регистрация
 
zek921
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
23.10.2011, 13:49     Как представить на яыке с++ образуют ли ребра графа цикл или нет ? #1
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
void Graf::Algoritm()
{
        Graf t = Graf(true);
        bool flag = false;
        Rib temp;Rib temp2;temp.Length = 999;temp2.Length = 999;
        for(int i =0;i<cnt;i++)
        {
                
                for(int j =0;j<cnt;j++)
                {
                if((bufer[i].P1 !=bufer[j].P1)||(bufer[i].P2!=bufer[j].P2))
                {
                        if((bufer[i].P1 == bufer[j].P1)||(bufer[i].P2 == bufer[j].P2))
                        {
                        if(bufer[i].P1 == bufer[j].P1)
                        {temp.P1 = bufer[i].P2;temp.P2 =bufer[j].P2;
                        temp2.P1 = temp.P2;//temp2.P2 = temp.P1; 
                        if(((t.ContainsRib(bufer,temp))==false))
                        {
                        //a.Add(temp);a.Add(temp2);flag = true;break;
                                bufer[i] = temp;cnt++;flag = true;
                        }
 
                        }
                                                if(bufer[i].P2 == bufer[j].P2)
                        {
                        temp.P1 = bufer[i].P1;temp.P2 =bufer[j].P1;
                        temp2.P1 = temp.P2;temp2.P2 = temp.P1; 
                        if(((t.ContainsRib(bufer,temp))==false))
                        {
                        bufer[i] = temp;cnt++;flag = true;
                        }
                        }
 
                        }
                
                        
                        
                        if(bufer[i].P1 == bufer[j].P2)
                        {
                        temp.P1 = bufer[i].P2;temp.P2 =bufer[j].P1;
                        temp2.P1 = temp.P2;temp2.P2 = temp.P1; 
                        if(((t.ContainsRib(bufer,temp))==false))
                        {
                        bufer[i] = temp;cnt++;flag = true;
                        }
                        }
 
                        if(bufer[i].P2==bufer[j].P1)
                        {
                        temp.P1 = bufer[i].P1;temp.P2 =bufer[j].P2;
                        temp2.P1 = temp.P2;temp2.P2 = temp.P1; 
                        if(((t.ContainsRib(bufer,temp))==false))
                        {
                        bufer[i] = temp;cnt++;flag = true;
                        }
 
                        }
 
                        if(flag==true)
                        {
                        i=-1;break;
                        }
                        else flag=false;
                }
                
                }
        
        }
 
}
вот так не работает ,хотя и запускается .Если добавить для мониторинга строку и выводить на экран,то все - равно цикл не проходится ,условия не проверяются .
Суть в общем - генерация на основе ребер ,что уже были взяты ,новых ребер ,которые образуют цикл .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2011, 13:49     Как представить на яыке с++ образуют ли ребра графа цикл или нет ?
Посмотрите здесь:

Цикл: правильно или нет? C++
C++ Как определить целое число или нет
C++ Задача на графы. Удалить ребра так, чтобы степень любой вершины была равна 3 или 0
C++ Как проверить пустой файл или нет?
Сортировка, или нет? (Вывести индексы массива в том порядке, в котором соответствующие им элементы образуют убывающую последовательность) C++
Представить цикл в математическом виде C++
Как проверить в с++ пуст файл или нет? C++
Кратчайший путь между вершинами взвешенного графа, в котором есть ребра с отрицательным весом C++

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

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

Текущее время: 21:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru