Untitled
unknown
python
3 years ago
1.1 kB
297
Indexable
from math import ceil class BTNode: def __init__(self, value: int = None, L: list = None, deg: int = 5, P: "BTNode" = None) -> None: if value is not None: self.L = [None, value, None] else: self.L = L for item in self.L: if type(item) is BTNode: item.P = self self.deg = deg self.P = P def searchValue(self, value: int) -> ("BTNode", bool, int): for index in range(len(self.L)): item = self.L[index] if type(item) is int: lc = self.L[index - 1] if value == item: return (self, True, index) if value < item: if lc is not None: return lc.searchValue(value) else: return (self, False, index) rc = self.L[len(self.L) - 1] if rc is not None: return rc.searchValue(value) else: return (self, False, len(self.L)) def keys(self) -> int: return int((len(self.L) - 1) / 2) def minKeys(self) -> int: return ceil((self.deg - 1) / 2) class BTreeList: def __init__(self, value: int, deg: int = 5) -> None: self.root = BTNode(value=value, deg=deg) self.deg = deg def searchValue(self, value: int) -> bool: (n, f, i) = self.root.searchValue(value) return f
Editor is loading...