Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Emma__
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 28
1

Бинарное дерево в бинарном дереве: обход

06.04.2015, 20:45. Просмотров 383. Ответов 2
Метки нет (Все метки)

Есть шаблонный класс бинарного дерева, описанный ниже. Все методы рабочие.
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
template <class T>
class Tree
{
    public:
        Tree();
        ~Tree(){};
    void insert_node(const T &);
    Tree ( Tree& t): root(0)  
    {
        if (this != &t)
        {
            _copy (t.get_root());
        }   
    }
    void _copy( TreeNode<T>* node)
    {
        if (node)
        {
            this->insert_node (node->data);
            _copy(node->left);
            _copy(node->right);
        }
    }
    TreeNode<T>* delete_node(TreeNode<T> *);
    void inorder_walk(TreeNode<T>*);
    void change_node (TreeNode<T>*, const T &, const T &);
    TreeNode<T>* find_max(TreeNode<T>*);
    TreeNode<T>* find_min(TreeNode<T>*);
    TreeNode<T>* find_node(TreeNode<T>*,const T &);
    TreeNode<T>* find_succsessor(const T &);
    TreeNode<T> *get_root();
    bool Is_Empty ();
    void writeToTextFile(TreeNode<T>* n, char* name);
    void cleanTextFile(char*);
    void readTextFile(char*);
    void writeToBinFile(TreeNode<T>* n, char* name);
    void readBinFile(char*);
    friend std::ifstream& operator >> ( std::ifstream &stream, Tree<T>* tree);  
    void writeTreeFromTreeToFile (Tree  n, char* name)
    private:
    TreeNode<T> *root;
};
Класс узла:
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
template <class T> 
class TreeNode
{
    friend class Tree<T>;
    public:
    TreeNode(const T &a)
    {
        this->data=a;
        this->left=this->right=0;
    }
    T* get_data()
    {
        return &(this->data);
    }
    void print_node ()
    {
        std::cout<<this->data;
    }
 
    void writeNodeToTextFile(char* name);
    void writeNodeToBinFile(char* name);
 
private:
    TreeNode* left;
    TreeNode* right;
    TreeNode* parent;
    T data;
};
Вопрос: как организовать обход такого дерева, если узлами дерева тоже являются деревья? (Эту бодягу нужно записать в бинарный файл).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2015, 20:45
Ответы с готовыми решениями:

Совершить в бинарном дереве обход Правый - Корень - Левый
Нужно совершить обход Правый корень левый в бинарном дереве. #include...

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

Бинарное Дерево(обход дерева)
добрый вечер всем!) в универе задали написать бинарное дерево со всеми видами...

Бинарное дерево. Обход бинарного дерева (симметрический, прямой и обратный)
Привет всем! Мне надо в курсовой работе написать программу, которая строит...

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

2
Implosion_IT
-18 / 9 / 5
Регистрация: 24.12.2014
Сообщений: 88
07.04.2015, 09:18 2
Цитата Сообщение от Emma__ Посмотреть сообщение
бодягу
Эту не по адресу разместили, а вообще ваши варианты бодяги где?
0
Emma__
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 28
07.04.2015, 16:47  [ТС] 3
Цитата Сообщение от Implosion_IT Посмотреть сообщение
вообще ваши варианты бодяги где?
Обошлась костылем (написала отдельный метод для узла, который вместо вывода узла вызывает обход внутреннего)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2015, 16:47

Разобраться в бинарном дереве
Нашел вот такой вариант построения бинарного дерева. Просьба...

Поиск в бинарном дереве
Привет всем! Нужно написать код, с которым в бинарном дереве можно найти...

Строки в бинарном дереве
Есть шаблонный класс бинарного дерева. Со числами он работает нормально, но при...


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

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

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