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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
#1

Нужно немного переделать программу нахождения компонент сильной связности в графе - C++

25.05.2012, 01:15. Просмотров 961. Ответов 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include <iostream>
#include <stdexcept>
#include <algorithm>
#include <iterator>
#include <vector>
 
class Graph
{
public:
   Graph(){}
   virtual ~Graph(){}
   void SetSize(int size_);
   const int GetSize() const {return size;} 
   virtual void Input()=0;
   void Output();
   void Resize();
protected:
   std::vector<std::vector<int> > VecGraph;
   int size;
};
 
class OrGraph:public Graph
{
public:
   OrGraph(){}
   ~OrGraph(){}
   void Input();
};
 
class UnOrGraph:public Graph
{
public:
   UnOrGraph(){}
   ~UnOrGraph(){}
   void Input();
};
 
//Functions for abstract Graph
void Graph::SetSize(int size_)
{
   size=size_;
   Resize();
}
 
void Graph::Output()
{
   for(int i=0; i<size; ++i)
   {
      std::copy(VecGraph[i].begin(), VecGraph[i].end(), std::ostream_iterator<int>(std::cout, " "));
      std::cout<<std::endl;
   }
   for(int i=0; i<size; ++i)
   {
      for(int j=0; j<size; ++j)
      {
         if(VecGraph[i][j]==1)
            std::cout<<i+1<<" node is connected with "<< j+1 <<" node.\n";
      }
   }
}
 
void Graph::Resize()
{
   VecGraph.resize(size);
   for(int i=0; i<size; ++i)
      VecGraph[i].resize(size);
}
 
//Functions for UnOrGraph
void UnOrGraph::Input()
{  
   for(int i=0; i<size; ++i)
   {
      for(int j=0; j<size; ++j)
      {
         if(i>j)
            continue;
         std::cout<<"Enter 1 for connect "<< i+1 <<" node with "<< j+1 <<" node: ";
         std::cin>>VecGraph[i][j];
         if(i!=j)
            VecGraph[j][i]=VecGraph[i][j];
      }
   }
}
 
//Functions for OrGraph
void OrGraph::Input()
{
   for(int i=0; i<size; ++i)
   {
      for(int j=0; j<size; ++j)
      {
         std::cout<<"Enter 1 for connect "<< i+1 <<" node with "<< j+1 <<" node: ";
         std::cin>>VecGraph[i][j];
      }
   }
}
 
int main()
{
   try
   {
      int size=0;
      int state=0;
   
      Graph*pOb;
 
      std::cout<<"Enter numb of nodes: ";
      std::cin>>size;
 
      if(size<0)
         throw "Numb of nodes can`t be less then zero. End of program\n";
      else if(size==0)
      {
         std::cout<<"It is empty graph\n";
         return 0;
      }
 
      std::cout<<"Enter 1 for unor graph and 2 for or graph: ";
      std::cin>>state;
 
      if((state!=1)&&(state!=2))
      {
         throw "You can only input 1 for unor graph or two for or graph. End of program\n";
      }
 
      if(state==2)
         pOb=new OrGraph;
      else if(state==1)
         pOb=new UnOrGraph;
   
      pOb->SetSize(size);
      pOb->Input();
      pOb->Output();
   }
   
   catch(char*str)
   {
      std::cerr<<str;
      return EXIT_FAILURE;
   }
 
   system("pause");
   return 0;
}
Добавлено через 48 минут
Очень срочно надо.

Добавлено через 1 час 19 минут
up up up
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 01:15     Нужно немного переделать программу нахождения компонент сильной связности в графе
Посмотрите здесь:

В неориентированном графе посчитать количество компонент связности - C++
2. Компоненты связности В неориентированном графе посчитать количество компонент связности. В графе нет петель и кратных ребер. Формат...

Нужно немного переделать программу: использовать функции и динамическое выделение памяти - C++
Помогите переделать программу в соответствии с условиями: а) для хранения массивов используйте динамически распределяемую память; б)...

Компоненты сильной связности орграфа - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;algorithm&gt; using namespace std; void search_depth(int v,...

Ошибка в поиске компоненты сильной связности (графы) - C++
Доброго времени суток. Подскажите пожалуйста, в чем ошибка. С векторами работаю не давно, думаю что не правильно считываю информацию в...

Динамические переменные (нужно немного переделать) - C++
Нужно немного переделать здесь нужно найти для каждой строки количество элементов, кратные трем, и крупнейший из полученных результатов и...

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

Переделать программу немного... - C++
Привет. Извиняюсь если написал не в тот раздел. Проблема такая. Есть программа: модель преобразования виртуального адреса в физический. Но...

Надо переделать немного программу - C++
Смотрите есть программа на решение методом хорд нелинейных уравнений. Но проблема в том что я не могу ее переработать так чтоб данные можно...

(С++)Нужно немного подправить программу - C++
Задача такова: Дан файл, содержащий сведения о телефонах абонентов. Структура записи файла: фамилия и инициалы абонента, год установки...

Нужно немного доделать программу - C++
Ввести класс для работы с обьектом дробь и реализовать 1) сложение(вычитание) 2)приведение к несократимому виду 1 )пункт программа...

нужно немного изменить программу) - C++
подскажите, пожалуйста, что нужно изменить в программе, чтобы, например, вместо (5) + i(2) было 5 + 2i, а также вместо (2) + i (-1) ...

не компилируется задание: компонент связности графа - кто разберется - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; class Stack { private: int stackSize; int* stackArray; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yoh
Сообщений: n/a
27.11.2013, 22:19     Нужно немного переделать программу нахождения компонент сильной связности в графе #2
тебе не хватает } в конце
Ответ Создать тему
Опции темы

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