Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Vadic96
0 / 0 / 1
Регистрация: 21.05.2012
Сообщений: 39
#1

Вывести на экран вершины орграфа, смежные с данной

26.01.2015, 22:47. Просмотров 882. Ответов 2
Метки нет (Все метки)

Уффф, к завтрашнему дню нужно сдать эти задачи, помогите пожалуйста кто чем сможет
(следующие задачи через обходы в глубину и ширину)
3 Вывести на экран те вершины орграфа, смежные с данной

Добавлено через 10 часов 13 минут
Все еще актуально

Добавлено через 11 часов 28 минут
Все еще актуально
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2015, 22:47
Ответы с готовыми решениями:

Вывести на экран вершины орграфа, смежные с данной
Вывести на экран те вершины орграфа, смежные с данной, т.е. вывести "входящие"...

Графы через списки смежности: вывести все вершины, не смежные с данной
вывести на экран все вершины не смежные с данной. код работает, но нужно еще...

Раскрасить вершины графа, чтобы смежные вершины были окрашены в различные цвета
Добрый день. Прошу вашей помощи от безысходности. 4 дня назад выдана задача,...

Вывести для каждой вершины орграфа сначала полустепень захода, а потом полустепень исхода
Ориентированный граф задан списком ребер Есть программа, но она не работает,...

Не смежные вершины матрицы
Найти все не смежные вершины матрицы смежности.

2
rocknrolla1
Заблокирован
26.01.2015, 23:45 #2
Лучший ответ Сообщение было отмечено Vadic96 как решение

Решение

Vadic96, смотря, как хранятся вершины. Если в списке смежности, то выбираем такую структуру:
C++
1
std::vector < std::list < int > > edges;
вывод всех смежных вершин с вершиной u будет таким:
C++
1
2
for( int v : edges[ u ] )
    std::cout << v << " ";
//
если в виде матрицы смежности, то:
C++
1
std::vector < std::vector < int > > matEdges;
соответственно:
C++
1
2
3
for( int i = 0; i < n; ++i )
    if ( i != u )
        std::cout << matEdges[ u ][ i ] << " ";
1
Vadic96
0 / 0 / 1
Регистрация: 21.05.2012
Сообщений: 39
27.01.2015, 02:45  [ТС] #3
rocknrolla1, я написал программу, но она работает не очень корректно, не знаю в чем дело
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
#include <fstream>
#include <stdio.h> 
#include <vector>
#include <string>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <sstream> //строковые потоки
 
using namespace std;
 
int main(){
 ifstream inp("input.txt");
 ofstream outp("output.txt");
 int n; 
 
 string str;
 int m1; //данная вершина
inp >> n;
 inp >> m1;
 vector <int> *vec = new vector <int> [n];
 
 getline(inp,str);
 for (int i = 0; i < n; i++){
 getline(inp,str);
 stringstream sio(str);
 int x;
 while (sio >>x)
 vec[i].push_back(x);
 }
 
 int k = 0;
 for (unsigned int i=0; i<vec[m1].size(); ++i){
 if ((i!= m1))
 {
 outp << vec[m1][i] << "\n";
 k++;
 }
 }
 if (k == 0) outp << " NET SMEZhNOSTI " << endl;
 }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2015, 02:45

Реализация графа через смежные вершины
Здравствуйте. У меня есть задача- написать функции для графа через сопредельные...

Найти все вершины орграфа, от которых существует путь заданной длины к выделенной вершине
Найти все вершины орграфа, от которых существует путь заданной длины к...

Граф задан своей матрицей смежностей, вывести на экран все связные вершины
Граф задан своей матрицей смежностей. Вывести на экран все связные...


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

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

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