Я хочу написать функцию, которая сообщает мне, является ли данный список минимальной кучей.
Что я написал до сих пор:
def is_min_heap(L):
return _is_min_heap(L, 0)
def _is_min_heap(L, i):
if
#base case
else:
return (L[i] < L[2*i+1] and _is_min_heap(L, 2*i+1)) and (L[i] < L[2*i+2] and _is_min_heap(L, 2*1+2))
Я не уверен, каким должен быть базовый вариант и правильны ли мои рекурсивные вызовы?
Кроме того, как вы можете контролировать, чтобы индексы в конечном итоге не вышли за пределы допустимого диапазона?