9 / 5 / 4
Регистрация: 03.10.2017
Сообщений: 110
1

Поиск в бинарном дереве

10.05.2019, 18:25. Показов 1870. Ответов 1
Метки нет (Все метки)

Составить рекурсивную функцию для определения первого элемента, у которого совпадают старшая и младшая цифры, в бинарном дереве.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2019, 18:25
Ответы с готовыми решениями:

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

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

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

Поиск элемента в бинарном дереве
Всем привет! Я столкнулась с проблемкой... Мне необходимо в бинарном дереве найти запись с ключом,...

1
1503 / 967 / 811
Регистрация: 30.04.2016
Сообщений: 3,334
11.05.2019, 20:21 2
Лучший ответ Сообщение было отмечено ulyana_md как решение

Решение

ulyana_md, здравствуйте! Вот решение. Выводится первый от корня элемент, удовлетворяющий данному условию (с учетом построения бинарного дерева):

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
/*
Дано бинарное дерево.
Составить рекурсивную функцию для определения первого элемента, у которого совпадают старшая и младшая цифры.
*/
 
#include <iostream>
#include <cmath>
 
    using namespace std;
 
struct BTree {
    int data;
    BTree* left;
    BTree* right;
};
 
BTree* add(int data) {
    BTree* node = new BTree;
    node->data = data;
    node->left = NULL;
    node->right = NULL;
    return node;
}
 
BTree* insert(BTree* node, int key) {
    if (node == NULL)
        return add(key);
    if (key < node->data)
        node->left = insert(node->left, key);
    else if (key >= node->data)
        node->right = insert(node->right, key);
    return node;
}
 
bool f(int n) {
    n = abs(n);
    int tmp = n;
    while (n > 10) {
        n /= 10;
    }
    if (n == tmp % 10) {
        return true;
    }
    return false;
}
 
int find_node(BTree* node) {
    if (node == NULL)
        return 0;
    find_node(node->left);
    if (f(node->data)) {
        return node->data;
    }
    find_node(node->right);
}
 
int main() {
    int n, val;
    BTree* root = NULL;
    cout << "Enter a number of nodes:\n";
    cout << "n = ";
    cin >> n;
    cout << "Enter binary tree nodes:\n";
    for (int i = 0; i < n; i++) {
        cout << i + 1 << " => ";
        cin >> val;
        if (i == 0) {
            root = insert(root, val);
        } else {
            insert(root, val);
        }
    }
    if (find_node(root)) {
        cout << "Output of the program: " << find_node(root) << "\n";
    } else {
        cout << "No any searched element was found!\n";
    }
    system("pause");
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2019, 20:21
Помогаю со студенческими работами здесь

Поиск одинаковых элементов в бинарном дереве
Нужно вывести на экран все повторяющиеся элементы в бинарном дереве. # include &lt;iostream&gt; #...

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

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

Поиск ключа в бинарном дереве поиска
Здравствуйте! Помогите ещё с задачками) 1.Поиск ключа в бинарном дереве поиска (точное...


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

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

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