Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Destinys
1

Обход графа в ширину

18.05.2012, 23:10. Просмотров 1337. Ответов 0
Метки нет (Все метки)


Требуется найти путь к файлу, указанному в первой строке входного файла.
Структура каталогов задана следующим образом. Вершиной является диск С:\. Он содержит каталоги и файлы, перечисленные во второй строке входного файла.
Каждая следующая строка входного файла содержит описание содержимого одного каталога: вначале идет имя каталога, потом его сожержимое.
Имена файлов и каталогов не содержат пробелов.

Выходной файл должен сожержать полный путь искомого файла.

Пример.
Входной файл:
laba5.cpp
С:\ Work Game logo.jpg
Work Univer School Diss shedule.xls
Game Tetris Piton
Univer Door Yes
Door 1.cpp 2.cpp 3.exe laba5.cpp
Yes ldf.jpg lfd.xls

Выходной файл:
C:\Work\Univer\Door\laba5.cpp
___________________________________________________________
Не знаю даже, с чего начать. Написал вот что-то типа этого, но вообще не пойму, то я делаю, или не то :

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
struct Item 
{
    int num;
    int val;
    Item* next;
    Item* left;
    Item* right;
 
};
 
class Graph
{
    int V;
    Item* vlists[max_V];
 
public:
    Graph();
    Graph(int V);
    ~Graph();
 
      void dfs (Graph G, int S)
      {
          int prev[max_V];
          marked[S]=1;
 
          for (Item* w=vlists[S]; w; w=w->next)
            if (!marked[w->num])
            {
                prev[w->num]=S;
                dfs(G,w->num);
            }
      }
 
      bool Isreachable(int t)
    {
        return marked[t];
    }
      void add (Item *root, int x)
      {
          if (root==NULL) { 
              root=new Item;
              root->val=x;
              root->left=NULL;
              root->right=NULL;
              return;     }
          if (root->val==x) return;
          if (root->val > x)
              if (root -> left) add(root->left,x);
              else {
                  root->left=new Item;
                  root->left->val=x;
                  root->left->left=NULL;
                  root -> left -> right = NULL;
              } else {
                  root->right=new Item;
                  root->right->val=x;
                  root->right->right=NULL;
                  root ->right -> left = NULL;
              }
      }
 
};
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2012, 23:10
Ответы с готовыми решениями:

Обход графа в ширину для определения всех вершин графа, находящихся на фиксированном расстоянии от данной вершины
Реализуйте обход графа в ширину для определения всех вершин графа, находящихся на фиксированном...

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

Обход графа в ширину
Как обойти граф в ширину? есть граф: int graf = { { 1, 6 },// где на каждой строке...

Обход графа в ширину
Подскажите, как во время обхода графа в ширину помечать вершины как четные и не четные?

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2012, 23:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Список смежности и обход графа в ширину
нужно создать список смежности и пройти граф в ширину. как с помощью struct{}; создать список...

Обход графа в ширину - Breadth First Search (BFS)
Всем привет! Я не понимаю алгоритм обхода в глубину BFS:( Кто может помощь?

Обход неориентированного графа в ширину. В конце выдаёт путь: 1
#include <iostream> #include <queue> #include <conio.h> using namespace std; int n;// число...

По заданной матрице смежности простого графа построить каркас этого графа с использованием поиска в ширину
Задание: заданно матрицу смежности простого графа. Построить каркас этого графа с использованием...


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

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

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