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

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

16.01.2011, 20:46. Просмотров 1674. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

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

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

Определить степени вершин графа и если граф однородный - вывести степень однородности
Помогите пожалуйста с кодом - на входе у нас есть файл с параметрами графа вида: n m v1 u1 v2 u2...

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

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


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

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

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