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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Ramirez18
Сообщений: n/a
#1

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

16.01.2011, 20:46. Просмотров 1431. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 20:46     Граф задается своей матрицей смежностей; вывести на экран матрицу инцидентности графа.
Посмотрите здесь:

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

Матрица инцидентности и смежностей - C++
скажите пожалуйста, есть ли какая нибудь закономерность между матрицей смежностей и матрицей инцидентности? или лучше способ как вывести на...

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

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

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

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

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

Вывести на экран последовательность чисел, первая строка которой задается формулой - C++
Вывести на экран последовательность чисел, первая строка которой задается формулой, (m = 0, ..., 10; k = 3, ..., m)

Задается произвольный текст, Вычислить среднюю длину слов текста и вывести ее на экран - C++
Задается произвольный текст, содержащий не более 10 строк, в каждой строке не бо-лее 80 символов. Вычислить среднюю длину слов текста и...

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

С клавиатуры задается двухзначное целое число. Необходимо вывести на экран все его делители - C++
С клавиатуры задается двухзначное целое число. Необходимо вывести на экран все его делители

Снова я со своей квадратной матрицей. - C++
Вроде доделал программу, которая проверяет матрицу на латинский и магический квадрат: #include &lt;iostream.h&gt; #include &lt;conio.h&gt; ...

Вывести на экран координаты элементов матрицы, которые в своей строке наименьшие - C++
Помогите пожалуйста написать программу,которая выводит на экран координаты элементов двумерного массива которые в своей строке...


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

Или воспользуйтесь поиском по форуму:
sandye51
программист С++
682 / 584 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
17.01.2011, 16:36     Граф задается своей матрицей смежностей; вывести на экран матрицу инцидентности графа. #4
у меня была, напиши в лс)
Yandex
Объявления
17.01.2011, 16:36     Граф задается своей матрицей смежностей; вывести на экран матрицу инцидентности графа.
Ответ Создать тему
Опции темы

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