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

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

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

Задача на графы - C++

02.05.2012, 23:14. Просмотров 641. Ответов 2
Метки нет (Все метки)

Помогите, пожалуйста, дана задача

Произвести обход графа, начиная от данной вершины, в ширину, т.е. вывести номера вершин в порядке удаленности от начальной вершины. Расстоянием от одной вершины графа до другой считается количество ребер в кратчайшем пути между этими вершинами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2012, 23:14     Задача на графы
Посмотрите здесь:

задача про графы - C++
Написать программу отыскания кратчайших путей между всеми парами вершин ориентированного графа по его списковому представлению

Задача про графы - C++
помогите если не сложно Тексты нужно переписывать в тело сообщения!

Интересная задача на графы - C++
Помогите решить. Никак не могу придумать способ. Мне говорят, что на графы, а связать это с графами не могу. Может хоть способ решения и...

Непростая задача на графы. - C++
Здравствуйте! Необходимо решить такую задачу: Антон работает в межгалактическом туристическом агентстве. Довольно часто ему приходится...

Задача на графы. Удалить ребро, соединяющее вершины a и b - C++
Дан граф, состоящий из N вершин и заданный списком смежности. Удалить ребро, соединяющее вершины a и b.

Задача на графы. Удалить ребра так, чтобы степень любой вершины была равна 3 или 0 - C++
Здравствуйте. Условие задачи, собственно, в названии темы. Возникли проблемы с алгоритмом, не говоря уже про код. Ограничений на входной...

Графы - C++
Помогите пожалуйста решить одну задачку. Буду очень благодарен! Спасибо заранее, огромное! Задана строка s. За один ход можно поменять...

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

Графы - C++
помогите с реализацией алгоритма Дейкстры для нахождения расстояния от узла 1 в каждый узел. матрица весов такая...

Графы - C++
Написать программу, реализующую алгоритм Беллмана-Форда.

графы - C++
помогите пожалуйста написать программу! Составить программу печати всех циклов ориентированного графа Добавлено через 2 часа 21...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7178 / 4344 / 634
Регистрация: 29.11.2010
Сообщений: 11,822
03.05.2012, 09:25     Задача на графы #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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <fstream>
#include <queue>
#define N 10
using namespace std;
 
int main()
{
    ofstream o("result.txt");
    ifstream in("A.txt");
    if (!in) return 1;
    // ------------------------------ГЁГ*èöèГ*ëèçГ*öèÿ------------------------------
    queue <int> q; // î÷åðåäü äëÿ õðГ*Г*ГҐГ*ГЁГї Г*îìåðîâ âåðøèГ*
    bool visited[N]; //false - âåðøèГ*Г* Г*ГҐ Г°Г*ññìîòðåГ*Г*, true - Г°Г*ññìîòðåГ*Г*
    bool inqueue[N]; //false - âåðøèГ*Г* Г*ГҐ Гў î÷åðåäè, true - Гў î÷åðåäè
    bool A[N][N]; // Г¬Г*òðèöГ* ñìåæГ*îñòè
    int start = 0; // Г*îìåð Г±ГІГ*ðòîâîé âåðøèГ*Г»
    int cur; // Г*îìåð ïîñåùГ*åìîé âåðøèГ*Г»
    for (int i = 0; i < N; i++)
    {
        visited[i] = inqueue[i] = false;        
        for (int j = 0; j < N; j++)
            in>> A[i][j];
    }
    q.push (start); // Г§Г*ïèñûâГ*ГҐГ¬ Г*Г*Г·Г*ëüГ*ГіГѕ âåðøèГ*Гі Гў î÷åðåäü
    visited[start] = inqueue[start] = true;
    // --------------------------------îáùèé ГёГ*ГЈ--------------------------------
    while (!q.empty())
    {
          cur = q.front();
          o<< cur<< " ";
          visited[cur] = true;
          q.pop();
          for (int i = 0; i < N; i++)
          {
              if (!inqueue[i] && A[cur][i])
              {
                  q.push (i);
                  inqueue[i] = true;
              }
          }
    }
    in.close();  o.close();
    return 0;
}
Gwynbleidd
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 11
03.05.2012, 21:21  [ТС]     Задача на графы #3
Огромное спасибо
Ответ Создать тему
Опции темы

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