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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
vadiprog
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 108
#1

Вставить новый элемент в бинарное дерево поиска - C++

06.05.2012, 15:54. Просмотров 1190. Ответов 2
Метки нет (Все метки)

Нужна программа которая вставляет новый элемент в бинарное дерево поиска
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 15:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вставить новый элемент в бинарное дерево поиска (C++):

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

Бинарное дерево поиска - C++
Дали такую задачу: Дан набор попарно не равных целых чисел, по ним строится бинарное дерево поиска. Нужно осуществить обход дерева и...

Бинарное дерево поиска - C++
В текстовом файле содержится произвольный текст. Построить на его основе бинарное дерево поиска, каждый узел которого содержит слово....

Бинарное дерево поиска - C++
Давайте рассмотрим некоторый пример Допустим есть числа от 0 до 99 которые добавляются в бинарное дерево Элементы в бинарное дерево...

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

Бинарное дерево поиска - C++
Решил написать бинарное дерево поиска, но что-то пошло не так, дерево не выводиться не понимаю почему. Вот весь код: #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.05.2012, 17:12 #2
где ваше бинарное дерево то?
vadiprog
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 108
06.05.2012, 21:46  [ТС] #3
Цитата Сообщение от panicwassano Посмотреть сообщение
где ваше бинарное дерево то?
Да можно любое бинарное дерево, любой длинны... или же сделать так чтобы длину задавать

Добавлено через 7 минут
Цитата Сообщение от panicwassano Посмотреть сообщение
где ваше бинарное дерево то?
Вот мой код который находит элемент в бинарном дереве, тоисть колво веток к нему...

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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <cstdlib>
#include <conio.h>
using namespace std;
 
class BinarySearchTree{
    private:
        struct tree_node{
           tree_node* left;
           tree_node* right;
           char data;
        };
        tree_node* root;
    
    public:
        BinarySearchTree(){
           root = NULL;
        }       
        bool isEmpty() const { return root == NULL; }
        void print_preorder();
        void preorder(tree_node*);
 
        void search(char);
        void insert(char);
};
 
void BinarySearchTree::insert(char d){
    tree_node* t = new tree_node;
    tree_node* parent;
    t->data = d;
    t->left = NULL;
    t->right = NULL;
    parent = NULL;    
    if(isEmpty()) root = t;
    else{
        tree_node* curr;
        curr = root;
        while(curr){
            parent = curr;
            if(t->data > curr->data) 
               curr = curr->right;
            else 
               curr = curr->left;
        }
        if(t->data < parent->data)
           parent->left = t;
        else
           parent->right = t;
    }
}
 
void BinarySearchTree::search(char d){
    bool found = false;
    if(isEmpty()){
        cout << "This Tree is empty!" << endl;
        return;
    }    
    tree_node* curr;
    tree_node* parent;
    curr = root; 
    int count(0);
    while(curr != NULL){
         if(curr->data == d){
            found = true;
            cout << count+1;
            break;
         }
         else{
             count++;
             parent = curr;
             if(d > curr->data) 
                curr = curr->right;
             else 
                curr = curr->left;
         }
    }
    if(!found){
        cout << "NO" << endl;
        return;
    }
}
 
 
void BinarySearchTree::print_preorder(){
    preorder(root);
}
 
void BinarySearchTree::preorder(tree_node* p){
    if(p != NULL)
    {
        cout << " " << p->data << " ";
        if(p->left) 
            preorder(p->left);
        if(p->right) 
            preorder(p->right);
    }
    else return;
}
 
 
int main(){
    BinarySearchTree b;
    char ch;
    for (int i = 0; i < 10; i++){
        b.insert(char(rand()% 25 +97));
    }
    b.print_preorder();
    cout << endl;
    char a;
    cout << "Vvedit znachennia, jake treba znaiti:\n"; 
    cin >> a;
    b.search(a);
    getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2012, 21:46
Привет! Вот еще темы с ответами:

Бинарное дерево поиска - C++
Всем привет! Не могу понять одну вещь. Есть вот такой код для заполнения бинарного дерева: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Бинарное дерево поиска - C++
#include &lt;iostream&gt; using namespace std; struct node { int key; node *left; node *right; node *p;

Бинарное дерево поиска C++ - C++
+Доброго времени суток! У меня есть задание:создать картотеку,в ней указать тип магазина,номер магазина,ключ,и адрес магазина.Такое...

Бинарное дерево поиска - C++
Вот задали лабораторною работу. Сделал бинарное дерево поиска. Выдает ошибку &quot;Что послан сигнал от операционной системы на завершение...


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

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

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