0 / 0 / 0
Регистрация: 05.11.2013
Сообщений: 4
1

Поиск и удаление в бинарном дереве, построенном на рекурсии

07.11.2013, 08:24. Показов 442. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делал лаботраторку по созданию бинарного дерева. Так как я понятия не имею как его строить, нашел в интернете код с пояснениями чуть ли не через каждую строчку. Как построить то понял, но как теперь реализовать функции поиска и удаления?
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Binary tree.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
struct Node
{
    int x;
    Node *l, *r;
    
};
 
void Show (Node *&Tree)
{
    if (Tree!=NULL)
    {
        Show(Tree->r);
        cout<<" ";
        cout<<Tree->x;
        cout<<" ";
        Show(Tree->l);
    }
}
 
void Add (int x, Node *& MyTree)
{
    if (NULL==MyTree)
    {
        MyTree = new Node;
        MyTree -> x=x;
        MyTree->l=MyTree->r=NULL;
    }
 
 
if (x<MyTree->x)
{
    if (MyTree->l!=NULL)
    {
        Add(x,MyTree->l);
    }
    else 
    {
        MyTree->l=new Node;
        MyTree->l->l=MyTree->l->r=NULL;
        MyTree->l->x=x;
    }
}
 
if (x>MyTree->x)
{
    if (MyTree->r!=NULL)
    {
        Add(x,MyTree->r);
    }
    else 
    {
        MyTree->r=new Node;
        MyTree->r->l=MyTree->r->r=NULL;
        MyTree->r->x=x;
    }
}
}
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    int y,flag=1;
    Node *Tree = NULL;
    for (int i=10;i>0;i--)
    {
        Add(i,Tree);
    }
    Show(Tree);
    cout<<"\n";
    while(flag==1)
    {
        cout<<"\n";
        cout<<"\n";
        cout<<"Желаете ввести новый узел?  1-Да   0-Нет"<<endl;
        cin>>flag;
        if (flag==0)
            break;
        cout<<"\n";
        cout<<"Введите новый узел"<<endl;
        cin>>y;
 
        Add(y,Tree);
        cout<<"\n";
        Show(Tree);
 
    }
    
    system("pause");
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2013, 08:24
Ответы с готовыми решениями:

Реализовать поиск и удаление элемента по индексу в бинарном дереве
Здравствуйте подскажите пожалуйста как сделать удаление и поиск по индексу. #include&lt;iostream&gt; ...

Удаление элемента (узла) в бинарном дереве
По заданию необходимо в бинарном дереве удалять все элементы равные искомому(как все удалять, я...

Удаление целой ветки в бинарном дереве
Перед тем, как удалять узел, я хочу обнулить его родительский узел (не обязательно, но советуют во...

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

0
07.11.2013, 08:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2013, 08:24
Помогаю со студенческими работами здесь

Поиск в Бинарном Дереве!
Задано бинарное дерево. Определить, есть ли в этом дереве хотя бы два одинаковых элемента....

Простая организация удаление узла в бинарном дереве
Добрый день. У меня получился сильно громоздкий код для удаление узла дерева (не корня). Нет...

Поиск дубликатов в бинарном дереве
Требуется создать функцию поиска дубликатов ИНФОРМАЦИОННОЙ ЧАСТИ, НЕ КЛЮЧА в бинарном дереве. ...

Поиск предка элемента в бинарном дереве
Вот функция поиска предка в бинарном дереве поиска: tree* predok(tree* root, tree* potomok, int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru