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

Подскажите как написать такое дерево (или БД) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не видит конструктор http://www.cyberforum.ru/cpp-beginners/thread928740.html
Приветсвую всех! В общем у меня небольшая проблемка, с которой собственными силами разобраться не смог... Только начиню создавать класс , там определены конструктор и деструктор. Но появляется...
C++ C++ файлы ifstream/ofstream запись класса Доброе время суток дамы и господа :) необходимо помочь ибо что-то голова не варит )) класс #pragma once #include <iostream> using namespace std; class date { int day; int mounth; int year; http://www.cyberforum.ru/cpp-beginners/thread928727.html
while ( не нажата клавиша) C++
Есть цикл while. Нужно что б цикл заканчивал виполнение если нажата клавиша ... Добавлено через 9 секунд клавиша любая
C++ TiffLib
пытаюсь отрыть файл этой либой, но мне пишет в консоль "Deflate compression support is not configured.". Я так понимаю не нужно пересобрать либу с какимито параметрами. Может кто работал с библиотека...
C++ Пузырьковая сортировка http://www.cyberforum.ru/cpp-beginners/thread928700.html
Помогите плз. Работаю в Visual Studio 2010. Написал алгоритм пузырьковой сортировки, но когда запускаю вместо одной из цифр выводится самое маленькое из возможных чисел (-858993460). В чем ошибка не...
C++ Ошибка на стадии выполнения ptr = ptr; class CObject { friend Parser; // много полей методов, все должны заполняться в парсере } class Parser { CObject * object_ public: подробнее

Показать сообщение отдельно
eocron
Кактус
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343

Подскажите как написать такое дерево (или БД) - C++

25.07.2013, 18:02. Просмотров 385. Ответов 3
Метки (Все метки)

Задача состоит в том, чтобы построить структуру данных по заданному рекурсивному расписанию каталогов. Причем:Все узлы отсортированны по порядковому номеру, в каждом узле должно быть имя, индекс родителя, сортированный вектор из индексов детей.

Вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
.
./download_client.sh
./random1000_queries_sport.txt
./times.txt
./site
./site/site_kz_domains_random1000_2011-07-26.txt
./site/site_ru_domains_random1000_2011-07-26.txt
./site/site_by_domains_random1000_2011-07-26.txt
./site/kz
./site/kz/random1000
./site/kz/random1000/site_by_domains_random1000_2011sd-07-26.txt
А вот мой намоляканный код на обработку этого:

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
      struct Node
      {
             string name;
             int high;
             int parent;
             map<int, Node *> kids;
      };
      
      map<int,Node> tree;
 
___________________________
 
                  string str;
                  string name;
 
                  for(int i=0;cin.good();i++)
                  {
                        cin>>str;
                        name = GetTail(str);
                        
                        tree[i].name                   = name;
                        tree[i].parent                 = ????????????????????????????
                        tree[i].high                   = tree[tree[i].parent].high + 1;
                        
                        tree[parent].kids[i]           = &tree[i]; //ну тут позор, да. Сделал для прикола
                  }
                  system("pause");
Загвоздка в том, что я не пойму каким образом получить индекс родителя. Точнее как это сделать оптимальнее всего, хранить весь путь а потом искать по нему? Или бить на части и искать по частям? Или мап сделать от имени (но тогда пострадает поиск по индексу, что вообще очень печально)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru