Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структура Vector http://www.cyberforum.ru/cpp-beginners/thread586010.html
Добрый день, помогите пожалуйста переделать чуть-чуть программу. Нужно чтобы вектор имел указатель не на float, а на byte и добавить код с вычислением произведения отрицательных элементов вектора....
C++ Перестановка элементов очереди Добрый день. У меня есть задание - Поменять местами первый и последний элементы в очереди. Вроде код написала правильный, но судя по тому, что не работает, то я ошибаюсь. #include <stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread586008.html
Двухмерный массив указателей из объектов C++
//point1.h #ifndef POINT_H #define POINT_H #include <iostream> class CIntArray { public:
C++ Модули. Многофайловые проекты
ДОброе время суток, не могли бы вы мне помочь написать програму, очень ну очень надо. желательно чем проше тем лутше, я чайник. задание. Модули. Многофайловые проекты Определить функцию,...
C++ DIv MOD в С++ http://www.cyberforum.ru/cpp-beginners/thread585997.html
не подскажете как описать оператор ДИВ в С++? суть такова а=5 b=2 x=a DIV 2 y=5/2 printf(...x) (y) мне нужно получить ответ 1 и 2.5, последнее не проблема... я смотрел в инете - там...
C++ удаление элемента из Red-Black tree Помогите пожалуйста. Дерево представлено в виде последовательности. При удалении элемента из дерева нужно удалять и элемент из последовательности. Функция void Tree :: deleteNode(Node *z) работает... подробнее

Показать сообщение отдельно
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168

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

25.05.2012, 01:15. Просмотров 989. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru