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

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

Войти
Регистрация
Восстановить пароль
 
red2100
0 / 0 / 0
Регистрация: 31.10.2011
Сообщений: 12
#1

не получается перевести матрицу инцидетности одного графа в другую - C++

12.11.2011, 20:23. Просмотров 667. Ответов 0
Метки нет (Все метки)

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
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
typedef int *pint;
int main ()
{    clrscr();
    int m, n, i, k, j,t,m1,n1,temp;
    pint *a;
    scanf ("%d %d", &m, &n);//размер матрицы смежности для графа а и а1
    a=new pint[m];
    for (i=0; i<m; i++)
    {
    a[i]=new int[n];
    }
 
/////////////////////////////////////////////////////////////
    printf ("k j a[k][j] \n");
    for (i=0; i<m; i++)
    for (j=0; j<n; j++)
    {
    scanf ("%d", &a[i][j]);ввод матрицы смежности для графа а
    }
 
     pint *b;
     printf ("\nm1n1");
    scanf ("%d %d", &m1, &n1);//размер матрицы инцидентности для графа а и а1
    b=new pint[m1];
    for (i=0; i<m1; i++)
    {
    b[i]=new int[n1];
    }
     for (i=0; i<m1; i++)
    for (j=0; j<n1; j++)
    {
      b[i][j]=0;//переход от матрицы смежности к инцидентности для графа а
    }
    pint *a1;
    a1=new pint[m];
    for (i=0; i<m; i++)
    {
    a1[i]=new int[n];
    }
    printf ("k j a1[k][j]  \n");
    for (i=0; i<m; i++)
    for (j=0; j<n; j++)
    {
     scanf ("%d", &a1[i][j]); ввод матрицы смежности для графа а1
    }
       for (i=0; i<m; i++)
       {
         for (j=0; j<n; j++)
           printf ("%d ", a1[i][j]);
        printf ("\n");
       }
        printf ("\n\\\\\\\\\\\\");
       pint *b1;
    b1=new pint[m1];
    for (i=0; i<m1; i++)
    {
    b1[i]=new int[n1];
    }
     for (i=0; i<m1; i++)
    for (j=0; j<n1; j++)
    {
      b1[i][j]=0;
    }
 
   k=0;
     for (i=0; i<m; i++)//переход от матрицы смежности к инцидентности для графа а
    for (j=i; j<n; j++)
 
    if(a[i][j])
    {
    b[i][k]=1;
    b[j][k]=1;
    k=k+1;
    }
 
 
 
     k=0;
     for (i=0; i<m; i++)//переход от матрицы смежности к инцидентности для графа а1
    for (j=i; j<n; j++)
 
    if(a1[i][j])
    {
    b1[i][k]=1;
    b1[j][k]=1;
    k=k+1;
    }
 
 
   
    k=100;
    t=0;
    for( i=0;i<m1;i++)         //  проверка на наличие ребер графа а в графе а1
     for (j=i;j<n1;j++)
     {
     if(b1[i][j]==b[i][j])
      if(b[i][j]==1)
       if(b1[i][j]==1)
        if(k==j)
      {
 
     temp=b1[i][k];
       b1[i][k]=0;
       b1[i][k+1]=temp;
       k++;
      }
 
 
     if(b1[i][j]!=b[i][j])
      {t=k;
       k=j;
       if((t<100)&&(k>=t))
        k=t;
       temp=b1[i][j];
       b1[i][j]=0;
       b1[i][j+1]=temp;
 
 
      }
     }
 
     for (i=0; i<m1; i++)
    {
    for (j=0;j<n1; j++)
       printf ("%d ", b1[i][j]);
    printf ("\n");
    }
 
/////////////////////////////////////////////////////////////
 
for (i=0; i<m; i++)
delete a[i];
delete a;
for (i=0; i<m; i++)
delete b[i];
delete b;
getch ();
}
исходные данные :граф а
0 1 0 1 1
1 0 1 1 0
0 1 0 1 0
1 1 1 0 1
1 0 0 1 0
граф а1
0 1 0 1 1
1 0 1 0 0
0 1 0 0 0
1 0 0 0 1
1 0 0 1 0
на выходе должна матрица в1:
1 1 1 0 0 0 0
1 0 0 1 0 0 0
0 0 0 1 0 0 0
0 1 0 0 0 0 1
0 0 1 0 0 0 1
а получается
1 1 1 0 0 0 0
1 0 0 1 0 0 0
0 0 0 1 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 1

подскажите что не так
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2011, 20:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не получается перевести матрицу инцидетности одного графа в другую (C++):

заданно матрицу смежности простого графа. Построить каркас этого графа с использованием поиска вширь - C++
Задание: заданно матрицу смежности простого графа. Построить каркас этого графа с использованием поиска вширь. Помогите написать...

Сгенерировать матрицу смежности полного графа - C++
1. Сгенерировать матрицу смежности полного графа (количество вершин n = 3) и найти минимальный гамильтонова цикла методом полного перебора....

Поиск кратчайших путей из одного источника для неориентированного графа - C++
Дорогие программисты! Прошу вас помочь мне в очень срочном деле! Очень нужен код программы, которая в заголовке на С++. Нашла целую...

Создание графа по матрице и поиск кратчайшего пути из одного графа в другой - C++ Builder
Доброго времени суток. Задали задание по матрице составить граф и написать функции 1 функция находит количество путей из графа допустим...

Результаты вычисления над столбцами двумерной матрицу в другую одномерную матрицу. - MathCAD
Здравствуйте. Возникла проблема с Mathcad, точнее не могу сделать следующее: Нужно сделать такую формулу, которая бы у каждого столбца...

Заполнить матрицу, повернуть ее на 90 градусов по часовой, и вывести в другую матрицу - PHP
Здравствуйте помогите решить вот такое задание, заполнить двумерный массив вот таким образом 1 14 15 28 29 42 43 2 13 16 27 30 41 44 ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2011, 20:23
Привет! Вот еще темы с ответами:

как можно записать в матрицу значения в заданном порядке, если нельзя вводить другую матрицу - Pascal
как можно записать в матрицу значения в этом порядке, если нельзя вводить другую матрицу uses crt; const n=6; var a:array of...

Раскраска графа: перевести код с C++ - C#
Нужна программа раскраски графа.Но как ее перевести их С++ на С# ...

перевести матрицу смежности в матрицу инцендентности - Delphi
Помогите пожалуйста, перевести матрицу смежности в матрицу инцендентности..... Заранее спасибо

кратчайшие пути из одной заданной вершины графа в другую - Pascal ABC
Найти, если возможно, кратчайшие пути из одной заданной вершины в другую и наоборот. Осталась последняя задача, но...


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

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

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