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

  #1  
Старый 16.03.2022, 19:39
bereg101
Познающий
Регистрация: 01.10.2017
Сообщений: 55
С нами: 4534357

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

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

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

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

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

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

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

Пример кода:





Код:
struct
node
{
int
value
;
node
*
left
;
node
*
right
;
}
 
Ответить с цитированием

  #2  
Старый 17.03.2022, 07:22
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

Нихуя не понятно
 
Ответить с цитированием

  #3  
Старый 17.03.2022, 13:19
bereg101
Познающий
Регистрация: 01.10.2017
Сообщений: 55
С нами: 4534357

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

Цитата:
Сообщение от F0RQU1N  

Нихуя не понятно
вот поэтому я здесь)
 
Ответить с цитированием

  #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.