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
|
def CHILD(i,j):
return 2*i + (j+1)
def IS_IN_MIN_HEAP(A,e):
return FIND_ELEMENT(A,0,e)
def FIND_ELEMENT(A,i,e):
if A[i] is e:
return True
elif CHILD(i,0) < len(A) and A[CHILD(i,0)] <= e:
return IS_IN_MIN_HEAP(A[1:],e)
if CHILD(i,1) < len(A) and A[CHILD(i,1)] <= e:
return IS_IN_MIN_HEAP(A[2:],e)
return False
#TEST MIN-HEAP
#Feel free to redefine as much as you want
l = [0, 2, 4, 5, 8, 12, 20]
#TESTS
print(IS_IN_MIN_HEAP(l, 0))
print(IS_IN_MIN_HEAP(l, 1))
print(IS_IN_MIN_HEAP(l, 2))
print(IS_IN_MIN_HEAP(l, 3))
print(IS_IN_MIN_HEAP(l, 4))
print(IS_IN_MIN_HEAP(l, 5))
print(IS_IN_MIN_HEAP(l, 8))
print(IS_IN_MIN_HEAP(l, 10))
print(IS_IN_MIN_HEAP(l, 11))
print(IS_IN_MIN_HEAP(l, 20))
|