29 lines
763 B
Python
29 lines
763 B
Python
from utils.literal import Literal
|
|
from utils.memory_cell import MemoryCell
|
|
from utils.memory_array import MemoryArray
|
|
|
|
class BTreeNode(MemoryCell):
|
|
|
|
def __init__(self, m: int):
|
|
super().__init__()
|
|
self.m = m
|
|
self.n = 0
|
|
self.leaf = True
|
|
self.value = MemoryArray(Literal(2 * m - 1))
|
|
self.children = [None] * (2 * m)
|
|
self.loaded_count = 0
|
|
self.saved_count = 0
|
|
|
|
def reset_counters(self):
|
|
super().reset_counters()
|
|
self.loaded_count = 0
|
|
self.saved_count = 0
|
|
|
|
def load(self):
|
|
self.loaded_count += 1
|
|
|
|
def save(self):
|
|
self.saved_count += 1
|
|
|
|
def __str__(self):
|
|
return "(" + " ".join([str(self.value[Literal(i)]) for i in range(self.n)]) + ")" |