ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #4  
Старый 20.03.2022, 13:41
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

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

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 перед название структуры без тайпдефа.
 
Ответить с цитированием
 



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.