ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Помогите разобраться с заданием? двоичного дерева (https://forum.antichat.xyz/showthread.php?t=1425931)

bereg101 16.03.2022 19:39

Помогите решить задание. Дали 10 штук, вроде все понятные, а это ни капли.

Кто может объяснить простыми словами что тут хотят? Я даже язык C не знаю и пример кода понять не могу

Дан указатель на корень двоичного дерева

Опишите словами алгоритм, который вернёт True если дерево является двоичным деревом поиска и False если не является

Вершина дерева содержит целочисленное значение (value) и два указателя на поддеревья (left и right).

В виде структуры на языке C это можно записать так:

Пример кода:





Код:

struct
node
{
int
value
;
node
*
left
;
node
*
right
;
}


F0RQU1N and 17.03.2022 07:22

Нихуя не понятно

bereg101 17.03.2022 13:19

Цитата:

Сообщение от F0RQU1N

Нихуя не понятно

вот поэтому я здесь)

sc6ut 20.03.2022 13:41

в бинаром дереве поиска правое значение больше текущего, а левое значение меньше текущего, так же нет повторений. чтобы проверить что бинарное дерево является бинарным деревом поиска тебе надо написать рекурсивный алгоритм который проверяет эти три условия. на си я бы сделал это так:

C:





Код:

struct
node
{
int
val
;
struct
node
*
left
;
struct
node
*
right
;
}
;
bool
is_binary_search_tree
(
struct
node
*
root
)
{
if
(
!
root
||
(
!
root
->
left
&&
!
root
->
right
)
)
return
true
;
if
(
root
->
left
&&
root
->
left
->
val
>=
root
->
val
)
return
false
;
if
(
root
->
right
&&
root
->
right
->
val

val
)
return
false
;
return
is_binary_search_tree
(
root
->
left
)
&&
is_binary_search_tree
(
root
->
right
)
;
}



не по теме но твоя структура записана на c++, а не на си, так как в си надо юзать struct перед название структуры без тайпдефа.


Время: 05:47