Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 9
1

Минимальное вершинное покрытие

14.12.2016, 17:22. Показов 2734. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите найти минимальное вершинное покрытие в неориентированном графе. Реализовал базовые операции, а вот с алгоритмом возникли проблемы:

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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
struct Graph {
    bool** adjacencyMatrix;
    int vertexCount = 0;
};
void create_Graph(int vertexCount, Graph& G) {
    G.vertexCount = vertexCount;
    G.adjacencyMatrix = new bool*[vertexCount];
    for (int i = 0; i < vertexCount; i++) {
        G.adjacencyMatrix[i] = new bool[vertexCount];
        for (int j = 0; j < vertexCount; j++)
            G.adjacencyMatrix[i][j] = false;
    }
}
 
void add_Edge(int i, int j, Graph& G) {
    if (i >= 0 && i < G.vertexCount && j > 0 && j < G.vertexCount) {
        G.adjacencyMatrix[i][j] = true;
        G.adjacencyMatrix[j][i] = true;
    }
}
 
void removeEdge(int i, int j, Graph& G) {
    if (i >= 0 && i < G.vertexCount && j > 0 && j < G.vertexCount) {
        G.adjacencyMatrix[i][j] = false;
        G.adjacencyMatrix[j][i] = false;
    }
}
 
bool isEdge(int i, int j, Graph& G) {
    if (i >= 0 && i < G.vertexCount && j > 0 && j < G.vertexCount)
        return G.adjacencyMatrix[i][j];
    else
        return false;
}
 
void Delete_Graph(Graph& G) {
    for (int i = 0; i < G.vertexCount; i++)
        delete[] G.adjacencyMatrix[i];
    delete[] G.adjacencyMatrix;
}
 
void Add_Vertex(Graph& G, int num) {
    bool** tmpMatrix = new bool*[G.vertexCount + num];
    for (int i = 0; i < G.vertexCount; i++)
        tmpMatrix[i] = G.adjacencyMatrix[i];
     for (int i = G.vertexCount; i<G.vertexCount + num; i++)
         tmpMatrix[i] = new bool[G.vertexCount+num];
     G.vertexCount = G.vertexCount + num;
     G.adjacencyMatrix = tmpMatrix;
}
 
int main()
{
    Graph G;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2016, 17:22
Ответы с готовыми решениями:

Минимальное реберное покрытие графа
Господа, подскажите пожалуйста, как реализовать эту задачу. Я так понимаю суть ее заключается ее в...

Минимальное покрытие отрезка отрезками. Рекурсия и динамическое программирование
&quot;Дыра&quot; и отрезки на прямой заданы целыми координатами своих концов. &quot;Дыру&quot; нужно закрыть...

Vertex cover или вершинное покрытие
Дано: Вершинное покрытие (VC) это подмножество вершин которые покрывают все рёбра в графе G. ...

покрытие wi-fi
Всем здравствуйте! Столкнулся с проблемой покрытия wi-fi. Казалось бы расстояние небольшое для...

0
14.12.2016, 17:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2016, 17:22
Помогаю со студенческими работами здесь

Покрытие множества.

Покрытие множеств
Добрый день, новичок на этом форуме =) нуждаюсь в помощи с задачей на покрытия множеств. Дано...

Антибактериальное покрытие
Слышал, что в самых дорогих микроволновых печах есть антибактериальное покрытие, которое...

Покрытие точек отрезками
Я новичок в Python и не могу решить эту задачу Покрытие точек отрезками Вход: множество n точек...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru