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

Организовать обход в глубину - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ консольное приложение (при запуске приложение открывалось на весь экран) http://www.cyberforum.ru/cpp-beginners/thread810520.html
Как сделать, чтобы при запуске приложение открывалось на весь экран?
C++ Классы. Непонятная ошибка Приветствую. Помогите мне пожалуйста разобраться в одной ошибке. Текст задачи: //--------------------------------------------------------------------------------------------------------------------- Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат: -номер УДК -фамилию и инициалы автора -название -год издания http://www.cyberforum.ru/cpp-beginners/thread810505.html
C++ Классы.Заголовочные файлы
Здравствуйте.Помогите найти ошибку.В программе.Вот код. /* main.cpp */ #include <iostream> #include <conio.h> #include "Students.h" using namespace std; int main() { setlocale(LC_ALL, "Russian");
C++ Добавить запись в файл, который уже содержит данные
Есть файл(название не важно). Необходимо без удаления предыдущих данных ввести новые, например с новой строки
C++ Динамический 2-ный массив, count Sort http://www.cyberforum.ru/cpp-beginners/thread810486.html
Всем привет, я написал сортировку методом ПОДСЧЁТА для двумерного массива с динамической памятью, и вот что то не работает , посмотрите код, я тут на форуме смотрел тему сортировки массивов, и всё равно для двумерного не получается у мня, спасибо заранее. int count_sort(int **ptrarray,int nrow,int ncol) { srand(time(0)); ptrarray = new int* ; for ( int count = 0;...
C++ Как направить вывод из файла Господа, подскажите, как быть с такой задачей. Есть текстовый файл. Допустим, 2 предложения, 10 слов всего. Необходимо каждое слово помещать в массив или вектор (не важно) по отдельности (для дальнейшего сравнения). Выделить слова думаю функцией "strtok", массив, думаю, типа vector <string> V; Но как использовать strtok, если текст в файле?? freopen ("file_name", "r", stdin) ?? подробнее

Показать сообщение отдельно
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.03.2013, 02:21
Цитата Сообщение от Veyron Посмотреть сообщение
Изначально вопрос стоял как это реализовать в ОДНОМ или в ДВУХ DFS, а не запускать от каждого сына шарнира.
Так там и получается один dfs.
Вы ведь при dfs из каждой вершины рекурсивно вызываете функцию. От обычного dfs это будет отличаться лишь тем, что функция будет возвращать значение.
То есть при обычном обходе у вас будет нечто такое
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 //edges - вектор списков ребер для каждой вершины
//used - булевый массив
void dfs(int v)
{
   for (int i = 0; i < edges[v].size(); ++i)
   {
       int to = edges[v][i];
       if (!used[to])
      {
           used[to] = true;
           dfs(to);
       }
   }
}
А если модифицировать, то будет как-то так (для простоты не учитывается время входа в вершину и наивысший достижимый предок, то есть это не поиск точек сочленения, а обычный dfs).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//int dfs(int v)
int res = 0;
...
for (int i = 0; i < edges[v].size(); ++i)
{
    int to = edges[v][i];
    if (!used[to])
    {
        used[to] = true;
        res += dfs(to) + 1; //учитываем ответ для to и саму to
    }
}
...
return res;
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru