Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Ramirez18
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 2
#1

Граф задается своей матрицей смежностей; вывести на экран матрицу инцидентности графа. - C++

16.01.2011, 20:46. Просмотров 1643. Ответов 3
Метки нет (Все метки)

Пожалуйста помогите с задачкой:
Граф задается своей матрицей смежностей; вывести на экран матрицу инцидентности графа.
Может я много лишнего написал помогите разобраться пожалуйста.

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
# include <iostream.h>
# include <conio.h>
struct Elem {int Data; Elem *Next;};
Elem *lns_First(int N, Elem *pB);
Elem * Dell_First(int &N, Elem *pB);
void Out_List( Elem *pB);
int *Get_Matr_Graph(int N);
Elem *Get_Okr(int k, int * MG, int N);
void OutAr2(int *Ar2, int N);
Elem *Get_Tour(int Begin, int *MG, int N);
void main()
{clrscr();
int N = 4;
int* MG = Get_Matr_Graph(N);
OutAr2(MG,N);
int Begin; Elem *Result;
cout<<"\n Begin Vertex:"; cin>> Begin;
Result = Get_Tour(Begin, MG, N);
Out_List(Result);
getch(); }
Elem *Get_Tour(int Begin, int *MG, int N)
{int Vert;
int *not_was = new int [N];
for(int i =0; i<N; i++) not_was[i]=1;
Elem *Path = 0,
*okr,
*Struct_T = Ins_First (Begin);
not_was[Begin] = 0;
do
{
Struct_T = Dell_First(Vert, Struct_T);
okr = Get_Okr(Vert, MG, N);
while(okr)
{okr = Dell_First(Vert, okr);
if(not_was[Vert]==1)
{ Struct_T = lns_Flrst(Vert, Struct_T);
Path = lns_First(Vert,Path);
not_was[Vert]=0;
}
}
}
while(Struct_T!=0);
return Path;
}
Elem *Ins_First(int N, Elem *pB)
{Elem *p = new Elem; p -> Data = N;
p -> Next = pB; pB = p;
return pB;
}
Elem *Dell_First(int &N, Elem *pB)
{ N=-1; if (pB = 0) return pB;
N = pB -> Data; pB = pB -> Next;
return pB;
}
void Out_List(Elem *pB)
{cout<<"\n";
if(pB==0) cout<<" List is empty";
else
while(pB){cout<<" "<<pB -> Data<<""; pB = pB -> Next;}
}
void OutAr2(int*Ar2, int N)
{cout<<"\n";
for(inti=0;i<N;i++)
{for(int j=0; j<N; j++) cout<<" "<<Ar2[N*i+j]<<"";
cout<<"\n";
 }
}
int*Get_Matr_Graph(int N)
{int*Ar2 = new int[N*N];
 
Ar2[0*N+0] = 0; Ar2[0*N+1] = 1; Ar2[0*N+2] = 0; Ar2[0*N+3] = 1;
Ar2[1*N+0] = 1; Ar2[1*N+1] = 0; Ar2[1*N+2] = 0; Ar2[t*N+3] = 1;
Ar2[2*N+0] = 0; Ar2[2*N+1] = 0; Ar2[2*N+2] = 0; Ar2[2*N+3] = 1;
Ar2[3*N+0] = 0; Ar2[3*N+1] = 1; Ar2[3*N+2] = 1; Ar2[3*N+3] = 0;
return Ar2;
}
Elem *Get_Okr(int k, int *MG, int N)
{Elem*p = 0; int j;
for(j=0;j<N;j++)
if(MG[N * k + j] == 1)
p = lns_First (j, p);
 return p;
}
for (int i = 0; i < n; ++i){
   for (int j = 0; j < v; ++j)
      cout << mi[i,j] << " ";
   cout << endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 20:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Граф задается своей матрицей смежностей; вывести на экран матрицу инцидентности графа. (C++):

Граф задается своей матрицей смежностей вывести на экране окружения каждой его вершины
Привет, ребят! Прошу Очень помочь! Граф задается своей матрицей смежностей....

Граф задан своей матрицей смежностей, вывести на экран все связные вершины
Граф задан своей матрицей смежностей. Вывести на экран все связные...

Матрица инцидентности и смежностей
скажите пожалуйста, есть ли какая нибудь закономерность между матрицей...

Неориентированный граф, вывести порядки вершин графа
Доброго времени суток. Прошу помощи. С алгоритмами работал мало, решил взяться...

Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл
помогите очень срочно надо. считать граф из файла (граф задан матрицей)...

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

3
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
16.01.2011, 20:53 #2
Ramirez18, даже смотреть твой код не хочу
а идея такова - считает число единиц под или над главной диагональю. Например m, число вершин n
тогда матрица смежности размера (m; n)
потом поочередно просматриваешь матрицу смежности (опять же под диагональю) и где стоит единичка, берешь номера тех вершин и фигачишь их в матрицу инцидентности.
ребра можно пронумеровать в порядке появления единичек в матрцие смежности под диагональю
0
Ramirez18
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 2
17.01.2011, 16:23 #3
Ну у меня проблема в закодивании как раз... Может быть есть у кого готовый код к этой задачке?
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
17.01.2011, 16:36 #4
у меня была, напиши в лс)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2011, 16:36
Привет! Вот еще темы с решениями:

Ориентированный граф и матрица инцидентности
Вот у меня есть такое прекрасное задание: Базовый класс: Элемент...

Можно ли задать взвешеный граф матрицой инцидентности?
Можно ли задать взвешеный граф матрицой инцидентности?

Определить степень каждой вершины в графе, заданном матрицей инцидентности
Приветствую! :) Такая вот задача:&quot;Определите степень каждой вершины в графе,...

Вывести на экран последовательность чисел, первая строка которой задается формулой
Вывести на экран последовательность чисел, первая строка которой задается...


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

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

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