Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Ilya155
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 21
1

Задан неориентированный невзвешенный граф в виде матрицы смежности. Вывести эту матрицу в виде списка ребер

22.09.2014, 15:42. Просмотров 793. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста.задал неориентированный невзвешенный граф в виде матрицы смежности. помогите вывести эту матрицу в виде списка ребер

вот мой код
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
int mass [50][50];
int i;
int j;
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
i = StrToInt(Edit1->Text);
j = StrToInt(Edit1->Text);
StringGrid1 -> RowCount = i+1;
StringGrid1 -> ColCount = j+1;
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{int m,n;
for (m=1;m < i;m++){
for (n=1;n < i;n++)
{mass[m][n]= StrToInt(StringGrid1->Cells[i][j]) ;}}
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{int m,n;
for (m=1;m < i;m++)
for (n=1;n < i;n++)
{if (mas[m][n]==mas[n][m])
{MessageBox (0,"Г*åîðèåГ*òèðîâГ*Г*Г*ûé","ГЋГІГўГҐГІ",MB_OK);}
else
{MessageBox (0,"îðèåГ*òèðîâГ*Г*Г*ûé","ГЋГІГўГҐГІ",MB_OK);}
}
 
}
Добавлено через 2 часа 25 минут
ап.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2014, 15:42
Ответы с готовыми решениями:

Простой неориентированный граф задан матрицей смежности, выведите его представление в виде списка ребер
Простой неориентированный граф задан матрицей смежности, выведите его представление в виде списка...

Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности
Нужно задать граф списком ребер и вывести его в виде матрицы смежности. Знаю что в i строке j...

Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности
Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы...

Реализовать метод Прима для построения минимального каркаса графа. Исходный граф задан в файле в виде матрицы смежности
Реализовать метод Прима для построения минимального каркаса графа. Исходный граф задан в файле в...

Граф в виде списка смежности, ввод из файла
Здравствуйте! Помогите пожлуйста! Из файла нужно прочитать количество вершин и список...

1
BRcr
4025 / 2314 / 292
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
25.09.2014, 22:40 2
Вот так можно:
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
const int X( 20 ), Y( 20 );
int mas[ X ][ Y ];
//...
 
int around_table[ 8 ][ 2 ] = {
                            { 1, 0 },
                            { 1, 1 },
                            { 0, 1 },
                            { -1, 1 },
                            { -1, 0 },
                            { -1, -1 },
                            { 0, -1 },
                            { 1, -1 },
                            };
std::vector< std::pair< int, int > > list;
for( int x( 0 ), x_shift, y_shift; x < X; ++x )
{
    for( int y( 0 ); y < Y; ++y )
    {
        for( int ati( 0 ); ati < 8; ++ati )
        {
            x_shift = x + around_table[ ati ][ 0 ];
            y_shift = y + around_table[ ati ][ 1 ];
            if( InRange( x_shift, 0, X - 1 ) && InRange( y_shift, 0, Y - 1 ) )
            {
                list.push_back( make_pair( mas[ x ][ y ], mas[ x_shift ][ y_shift ] ) );
            }
        }
    }
}
Хотя, не тестировал, что-то мог упустить из виду...
list в итоге будет содержать список пар, задающих ребра, а around_table позволяет задавать очередность включения ребер в список - в данном случае по часовой стрелке, начиная с находящегося "справа" элемента.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2014, 22:40

Как обрабатывать граф в виде списка смежности
Не подскажете, как обрабатывать граф (например поиск в глубину), если он задан списком смежности...

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

Неориентированный граф задан матрицей смежности. Найдите степени всех вершин графа
Работа с графами. Совсем не шарю в них. Может кто то поможет написать программу. Только с...


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

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

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