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

Построить матрицу смежности - C++

Восстановить пароль Регистрация
 
Myptuk
1 / 1 / 0
Регистрация: 01.05.2013
Сообщений: 43
08.04.2014, 19:52     Построить матрицу смежности #1
Задаем поле с единицами и нулями (где 1-пустая клетка, 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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    int n, m, x, y, k, l, nkol, razmer;
    cout<<"Введите количество строк: ";
    cin>>n;
    cout<<"Введите количество столбцов: ";
    cin>>m;
 
    //создание массива, заполнение 1-ми
 
    int** a = new int* [n];
    for(int i=0; i<n; i++)
    {
        a[i] = new int[m];
        for(int j=0; j<m; j++)
        {
        a[i][j]=1;
        }
    }
 
    // вывод массива
 
    for(int i = 0; i < n; i++)
    {
        cout<<endl;
        for(int j = 0; j < m; j++)
        {            
            cout<<a[i][j]<<" ";
        }
    }
    cout<<endl;
    cout<<endl;
 
    //ввод препятствий, коррекция массива
 
    cout<<"Ввод препятствий (координаты x и y задают левый верхний угол препятствия):"<<endl;
    cout<<endl;
 
 
    cout<<"Введите количество препятствий: ";
    cin>>nkol;
 
    for (int g=1; g<=nkol; g++)
    {
        cout<<"Введите x"<<g<<": ";
        cin>>x;
        cout<<"Введите y"<<g<<": ";
        cin>>y;
        cout<<"Введите длину препятствия: ";
        cin>>k;
        cout<<"Введите ширину препятствия: ";
        cin>>l;
 
        for(int i=x; i<x+l; i++)
        {
            for(int j=y; j<y+k; j++)
            {
                a[i][j]=0;
            }
        }
        x=0;
        y=0;
        k=0;
        l=0;
    }
 
    // вывод скорректированного массива
 
    for(int i = 0; i < n; i++)
    {
        cout<<endl;
        for(int j = 0; j < m; j++)
        {            
            cout<<a[i][j]<<" ";
        }
    }
 
    cout<<endl;
    cout<<endl;
    system("pause");
}
Нужно проанализировать полученное поле и построить по нему матрицу смежности неориентированного графа (симметричную). Очень нужна помощь, сидим весь день не можем ничего путного придумать. Заранее спасибо!

P.S. Каждая клетка является вершиной графа, т.е если поле размером n*m, то размер матрицы смежности k*k, где k=n*m. Исполнить надо на С++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2014, 19:52     Построить матрицу смежности
Посмотрите здесь:

Построить матрицу вида порядка n C++
заданно матрицу смежности простого графа. Построить каркас этого графа с использованием поиска вширь C++
Как из матрицы смежности получить матрицу инцидентности? C++
C++ Построить квадратную матрицу по образцу
C++ список смежности в матрицу смежности
C++ Сгенерировать матрицу смежности полного графа
C++ Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер
Ориентированный граф. Получить из списка рёбер матрицу смежности C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 23:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru