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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
orienteer
7 / 6 / 0
Регистрация: 23.06.2009
Сообщений: 41
#1

Бинарное дерево - C++

30.04.2010, 00:46. Просмотров 1710. Ответов 1
Метки нет (Все метки)

Нужно записать в дерево и вывести в форматированном виде каталог файлов(типа windows)
на вход даны имена файлов вида
c:\win\1
c:\win\2
c:\sys
\ не является частью имени, а служит для разделения узлов при задании пути
Внутри одного узла не допускаются листья с одинаковыми именами
Длины имен узлов и листьев, как и их количество – не ограничены, нужно использовать динамическую память.
вывод вида
c:
win
1
2
sys

проблема в том что нельзя использовать STL
как реализовать запись в дерево, подскажите плз
чтение имени реализовал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char *ReadName(FILE *pFile)
{
    char *pString = NULL;
    int ch;
    int length = 0;
    while (((ch = fgetc(pFile)) != EOF) && (ch != '\n') && (ch != '\\'))
    {
        pString = reinterpret_cast<char*>(realloc(pString, length + 1)); 
        pString[length++] = static_cast<char>(ch); 
    }
    if ((length != 0) || (ch != EOF))
    {
        pString = reinterpret_cast<char*>(realloc(pString, length + 1));
        pString[length] = '\0';
    }
    return pString;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2010, 00:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Бинарное дерево (C++):

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное дерево - C++
Объясните пжлст почему не работает программа...при вводе файла пишет -842150451 /*Дан адрес P1 вершины дерева — записи типа TNode, ...

Бинарное дерево - C++
Здравствуйте, Корень создаёться вот так TREE *root=NULL; непонятно почему функия добовления использует указатель на указатель ...

Бинарное дерево - C++
Необходимо построить бинарное дерево с методами inorder_tree_walk, tree_search, tree_minimum, tree_successor, tree_insert и tree_delete....

Бинарное дерево - C++
Здравствуйте.Прошу помощи.Никак не могу разобраться в задании.Нужно сделать бинарное дерево и с помощью дерева привести выражение к...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
02.05.2010, 02:37 #2
для каждого узла: левое поддерево это вложенные в него папки или файлы, прваое поддерево это файл или папка находящиеся на одном уровне с данным узлом. только чтобы описать большое количество файлов в папке потребуется еще один тип узл-соединитель.
для:
c:\temp\lab1\prg1.c
c:\temp\lab1\prg2.c
c:\temp\lab2\prg1.c
c:\temp\task
c:\work\foto.jpg
c:\lib\dev-c++
дерево будет:
Код
                             c:
                          /     \
                       work      0
                       /   \
              foto.jpg      *
                              \
                               temp
                              /     \
                         lab1        *
                      /      \         \
                  prg1.c      *         lib
                    \           \        /
                     *         lab2   dev-c++
                      \          /  \
                  prg2.c   prg1.c   *
                                       \
                                     task
где '*' - соединительный узел.

Добавлено через 23 часа 48 минут
Хотя нет, что то я намудрил. Не надо узла соединителя. просто правый сын на одном уровне с отцовким узлом и все.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2010, 02:37
Привет! Вот еще темы с ответами:

Бинарное дерево - C++
Здравствуйте.Прошу помощи.Никак не могу разобраться в задании.Нужно сделать бинарное дерево и с помощью дерева привести выражение к...

Бинарное дерево - C++
Народ помогите. На С++ нада написать программу бинарного дерева Требования: 1. В программе должен быть шаблонный класс (template...

Бинарное дерево - C++
Как организовать вывод бинарного дерева?

Бинарное дерево - C++
Здравствуйте.Прошу помощи.Никак не могу разобраться в задании.Нужно сделать бинарное дерево и с помощью дерева привести выражение к...


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

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

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