title: DSA-As-2
date: 2023-10-15
author: AllenYGY
status: DONE
created: 2024-01-15T23:44
updated: 2024-06-11T01:14
publish: True
DSA-As-2
GETSUM(A, left, right)
IF left > right
return 0
center = left + (right - left) / 2
if(A[center] == 0 AND center + 1 < A.size AND A[center + 1] == 1)
return A.size - center - 1
else if(A[center] == 1)
return GETSUM(A, left, center - 1)
else
return GETSUM(A, center + 1, right)
When
isBST(node, lower, upper)
IF node IS NULL
RETURN TRUE
IF node.key <= lower OR node.key >= upper
RETURN FALSE
RETURN isBST(node.left, lower, node.key) AND isBST(node.right, node.key, upper)
isBST(root, INT_MIN, INT_MAX)
initial state:
25|3
┌───────────────┴───────────────┐
13|1 80|2
┌───────┴───────┐ ┌───────┴───────┐
6|0 15|0 58|1 82|0
└───┐
65|0
insert:29
25|3
┌───────────────┴───────────────┐
13|1 80|2
┌───────┴───────┐ ┌───────┴───────┐
6|0 15|0 58|1 82|0
┌───┴───┐
29|0 65|0
insert:70
25|3
┌───────────────┴───────────────┐
13|1 65|2
┌───────┴───────┐ ┌───────┴───────┐
6|0 15|0 58|1 80|1
┌───┘ ┌───┴───┐
29|0 70|0 82|0
insert:68
65|3
┌───────────────┴───────────────┐
25|2 80|2
┌───────┴───────┐ ┌───────┴───────┐
13|1 58|1 70|1 82|0
┌───┴───┐ ┌───┘ ┌───┘
6|0 15|0 29|0 68|0
a)
b)