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

собрать программу. окружение графа. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неудается прочитать строчку из текстового файла http://www.cyberforum.ru/cpp-beginners/thread212026.html
Добрый день. Помогите пожалуйста. Я записываю в текстовый файл данные с помощью процедуры: int ifiletext (FILE *F1, student &a) { F1=fopen("output.txt", "a"); fprintf (F1, "%s %s %d %f\n",a.imya,...
C++ Назначения Кто-нибудь пожалуйста помогите. Нужна программа на C++. Требуется назначить на каждый вид работ одного из работников, так чтобы общее время, необходимое для завершения всех видов работ, было... http://www.cyberforum.ru/cpp-beginners/thread212024.html
C++ Наследование классов
Как правильно построить наследование, чтобы класс C мог корректно использовать A : Show() ? Например имеем: AB.h: class A { private: int a; int b; public:
C++ Запишите в файл школьную таблицу умножения, после чего выведите данные из файла на экран.
Запишите в файл школьную таблицу умножения, после чего выведите данные из файла на экран.
C++ Sleep http://www.cyberforum.ru/cpp-beginners/thread212000.html
Пишу пакмэна , нужно что бы пакмен бегал быстрее чем приведение как это сделать?? пробовал написать так но работает все с одной скоростью while(!kbhit() ) { if(Pause==true) { Sleep(1);
C++ Извлечение корня Не подскажите функцию в С++ для извлечения корня подробнее

Показать сообщение отдельно
achtung
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 24

собрать программу. окружение графа. - C++

15.12.2010, 21:18. Просмотров 810. Ответов 3
Метки (Все метки)

в течении двух недель нужно написать курсовую, помогите пожалуйста.
Задание: Граф задаётся своей матрицей смежности, вывести на экран окружение каждой его вершины.

имеются части программы, помогите собрать, желательно используя именно данные здесь имена переменных и функций.
Ввод матрицы смежностей:
C++
1
2
3
4
5
6
7
int*get_matrix( int N)
{int*Ar2=new int[N*N]; //N - количество вершин, Ar2 - массив с матрицей смежностей
for(int Row=0;Row<N;Row++) //Row - строка
for(int Col=0;Col<N;Col++) //Col - столбец
cout<<"M["<<Row<<"]["<<Col<<"]=";
cin>>Ar2[Row*N+Col];
return Ar2;}
Вывод матрицы смежностей графа на экран:
C++
1
2
3
4
5
6
void out_matrix(int*Ar2,int N)
{ for(int Row=0;Row<N;Row++)
for(int Col=0;Col<N;Col++)
cout<<Ar2[Row*N+Col]<<" ";
cout<<'\n';
}
Функция, возвращающая результат обхода графа (обход не нужен, нужно только окружение, выбрать не смогла):
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
struct Result{int*Ar1,int*Nu}; //Ar1 - массив, Nu - количество элементов в массиве
Result obhod(int*Matr,int Beg, int N) //Beg - вершина,с  которой начинается обход
{Result R;
 R.Ar1=new int[N]
 R.Nu=-1;
int*T=new int[N*N]; //Т - стэк, содержащий результат обход графа в глубину
int*Was=new int[N]; // Was - массив с элементами, в которых были (при первом обходе посещенную вершину помечают цифрой 1, не посещенную - цифрой 0, чтобы не проходить одну и ту же вершину несколько раз
Result Okr; // Okr - массив с окружением
Okr.Ar1=new [N];
Okr.Nu=-1;
int Vert; //Vert - текущая проверяемая вершина
for(int i=0;i<n;i++)
Was[i]=0;
int CT=-1; // СТ - количество элементов в стэке
T[++CT]=Beg;
do
{ Vert=T[CT--];
R.Ar1[++R.Nu]=Vert;
Okr=get_okr(int Vert,int*Matr,Was[i]=N);
for(int i=0;i<Okr.Nu;i++)
if(Was[Okr.Ar1[i]==0)
{T[++CT]=Okr.Ar1[i];
Was[Okr.Ar1[i]=1;}
while(CT)>-1;
return R;}
Result get_okr(int Vert,int*Matr,int N)
{Result x;
x.Ar1=new int[N];
x.Nu=-1;
for(int i=0;i<N;i++)
if(Matr[Vert*n+i]=1)
x.Ar1[++x.Nu]=i;
return x;}
в программе находится окружение только одной вершины, нужно вывести окружение всех вершин графа.
буду очень рада рассмотреть все решения поставленной задачи, даже не зависимо от предоставленных блоков программы.)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru