Files
tira/viikko12/minmax.py
T
2026-03-26 17:03:42 +02:00

66 lines
1.5 KiB
Python

class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class TreeSet:
def __init__(self):
self.root = None
def add(self, value):
if not self.root:
self.root = Node(value)
return
node = self.root
while True:
if node.value == value:
return
if node.value > value:
if not node.left:
node.left = Node(value)
return
node = node.left
else:
if not node.right:
node.right = Node(value)
return
node = node.right
def min(self):
node = self.root
while True:
if node is None:
return None
if not node.left:
return node.value
node = node.left
def max(self):
node = self.root
while True:
if node is None:
return None
if not node.right:
return node.value
node = node.right
if __name__ == "__main__":
numbers = TreeSet()
print(numbers.min()) # None
print(numbers.max()) # None
numbers.add(3)
print(numbers.min()) # 3
print(numbers.max()) # 3
numbers.add(4)
print(numbers.min()) # 3
print(numbers.max()) # 4
numbers.add(1)
print(numbers.min()) # 1
print(numbers.max()) # 4