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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
jhendrix
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 184
#1

Произвольное дерево - C++

29.08.2010, 02:00. Просмотров 1681. Ответов 4
Метки нет (Все метки)

здравствуйте.
какие есть хорошие статьи по теме: произвольное дерево ?
и чем отличается реализация произвольного от бинарного дерева ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2010, 02:00     Произвольное дерево
Посмотрите здесь:

Сортировка массива и запись данных в файл в произвольное место C++
Произвольное вращение графики C++
Напишите программу, которая бы читала дерево в формате (а) и затем печатала бы это дерево в формате (б). C++
C++ Произвольное количество вложенных циклов + рекурсия
C++ Итератор, вставка в произвольное место списка
C++ Дерево дерево, странное дерево
C++ Перевести в двоичную систему счисления произвольное шестнадцатеричное число
C++ С клавиатуры ввести произвольное предложение и исключить из него предпоследнее слово
Произвольное слово разбить для переноса по правилам русского языка C++
Перемещение информации в файле в произвольное место C++
Задано произвольное слово. Определить, заканчивается ли оно на слог «va» C++
C++ Произвольное изменение значения на 0.000001

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
30.08.2010, 00:44     Произвольное дерево #2
Цитата Сообщение от jhendrix Посмотреть сообщение
здравствуйте.
какие есть хорошие статьи по теме: произвольное дерево ?
и чем отличается реализация произвольного от бинарного дерева ?
И Вам доброго времени суток,
сразу ко второму вопросу.
Под произвольным деревом, имеется ввиду дерево общего вида (то есть у вершины неограниченное число потомков)???
Допустим, для организации обычного бинарного дерева мы использовали следующую конструкцию:
C++
1
2
3
4
5
6
struct nodes
{
    SOME TYPE data;
    nodes *left;
    nodes *right;
};
тогда, в простейшем случае, мы имели некий указатель на корень дерева. Указатели left и right хранили адреса левого и правого потомка соответсвенно. Каждый потомок хранил указатели на своих потомков (либо потомка и NULL), и так далее пока оба указателя не принимают значение NULL (листовая вершина или лист).

Для организации произвольного дерева опять же будет некий указатель на корень. Указатель left хранит адрес левого потомка, а вот указатель right хранит адрес правой сестры. У корня, естественно, сестры нет, но у потомка корня может быть. Нетрудно увидеть, что вобще говоря потомки одного родителя организуются в однонаправленный связный список.
jhendrix
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 184
30.08.2010, 08:25  [ТС]     Произвольное дерево #3
хорошо, но у меня только один вопрос.
допустим произвольное дерево вот такое:

A
/ \
B C
/ \ \
D E F

тогда в этом примере узел F пропадает согласно определению ?
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
30.08.2010, 13:59     Произвольное дерево #4
Цитата Сообщение от jhendrix Посмотреть сообщение
хорошо, но у меня только один вопрос.
допустим произвольное дерево вот такое:

A
/ \
B C
/ \ \
D E F

тогда в этом примере узел F пропадает согласно определению ?
C++
1
2
3
4
5
6
7
                A -- NULL
              /
             B---------------------------------C ------- NULL
           /                                  /
          D---E--NULL                       F----NULL
        /     /                            /
      NULL   NULL                         NULL
не происходит деления на левого/правого потомка, есть просто потомок (ну или первый потомок, второй потомок, третий потомок и т.д.)
jhendrix
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 184
30.08.2010, 14:58  [ТС]     Произвольное дерево #5
Ок. Понял.
Yandex
Объявления
30.08.2010, 14:58     Произвольное дерево
Ответ Создать тему
Опции темы

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