Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.09.2014
Сообщений: 17
1

Графы. Ограничение на количество связей (ребер)

26.02.2015, 21:57. Показов 506. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток! Пишу программу, где рисуется граф для дальнейшего использования при расчетах. На поле PaintBox расставляются точки (вершины), потом они связываются линиями-стрелками (ребра графа). При создании ребра создается объект собственного класса с параметрами+каждый созданный объект фиксируется в структуре типа TList. Проблема в том, что нужно ограничить создание одинаковых связей, т.е. что бы как-то проверялось есть ли связь между двумя вершинами или нет, и если есть, то новый объект уже не создавался. Помогите плиз.
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
if(btnLinks->Down==true) //нажата ли кнопка "Связи"
  {
   if(finded==true) //есть ли вершина под курсором
     {
      if(dragging==true)  //"тянем" ли новое ребро из вершины; 
        {                                                        //предполагаю, что где-то здесь должна быть проверка
         LCV->links->Add(nodes->Get(i));
         GraphLine* newline=new GraphLine(f,i); //создается объект ребра с параметрами: номер начальной вершины и
                                                                 //последней
         lines->Add(newline);
        }else
         {
          LastClickedVertex.x=nX;
          LastClickedVertex.y=nY;
          LCV=nodes->Get(i);
          f=i;
          NewArrowEnd.x=nX;
          NewArrowEnd.y=nY;
          dragging=true;
         }
     }else
      {
       if(Button==mbRight)
         {
          dragging=false;
         }
      }
     SynchronizeGraphAndGrid();
     SynchGraphAndGridG();
     Modified=true;
     }else
P.S. Я опытны чайник, прошу учесть. Если какого-то кода не хватает - пишите.
P.P.S. Вершины тоже создаются как объекты с параметрами: координаты X и Y.

За основу брался нижеприведенный проект (скачан с форума):
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вложения
Тип файла: rar Пример графы.rar (579.6 Кб, 3 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2015, 21:57
Ответы с готовыми решениями:

Графы: перевод матрицы инцидентности в список ребер
в ближайшие несколько дней нужна программа и блок-схема перевода матрицы инцидентности в список...

Графы: матрицы соединений и матрицы связей
Графом называется совокупность точек ( узлов), некоторые из которых соединены между собой...

Сколько существует неизоморфных графов без петель и кратных ребер, имеющих 7 вершин и 18 ребер?
Помогите, пожалуйста. Задачи: 1) Сколько существует неизоморфных графов без петель и кратных...

Количество ребер в графе
Какое максимальное количество ребер может быть в простом слабо связном ориентированном графе на 10...

2
случайный прохожий
1510 / 1009 / 373
Регистрация: 20.07.2013
Сообщений: 2,931
27.02.2015, 12:42 2
каждый созданный объект фиксируется в структуре типа TList
Перед созданием (ребра/объекта) проверяй, если ли уже такое ребро в TList. Ваш К.О.
0
0 / 0 / 0
Регистрация: 14.09.2014
Сообщений: 17
27.02.2015, 20:03  [ТС] 3
А можно попросить пример реализации в виде кода(хотя бы примерный)? Просто не получается сообразить, как эту идею в коде реализовать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2015, 20:03

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Количество ребер в полном графе
Откуда взята формула, которая определяет количество ребер в полном графе?? n(n-1)/2 Если можно, то...

Минимальное количество ребер в графе
Дано n вершин и m ребер в неориентированном графе. Далее идет по два числа - вершины ребер. Вывести...

Посчитать количество ребер неориентированого графа
Задача с сайта е-олимп, компилятор Judge Pascal (судя по логу ошибок - free pascal). Дано набор...

Создание связей в JPA и таблиц на основе этих связей
Как начинающий ознакомление с JPA: В моём скрине были созданны empoyee_id и manager_id как FK...


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

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

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