5050@dataclass
5151class SplayNode :
5252 """A node in the Splay Tree."""
53+
5354 value : Any
5455 left : SplayNode | None = None
5556 right : SplayNode | None = None
@@ -166,8 +167,9 @@ def _splay(self, node: SplayNode) -> None:
166167 self ._rotate_right (parent )
167168 else :
168169 self ._rotate_left (parent )
169- elif (node is parent .left and parent is grandparent .left ) or \
170- (node is parent .right and parent is grandparent .right ):
170+ elif (node is parent .left and parent is grandparent .left ) or (
171+ node is parent .right and parent is grandparent .right
172+ ):
171173 # Zig-zig case: same direction
172174 if parent is grandparent .left :
173175 self ._rotate_right (grandparent )
@@ -282,20 +284,24 @@ def inorder(self) -> Iterator[Any]:
282284
283285 def preorder (self ) -> Iterator [Any ]:
284286 """Return a preorder iterator."""
287+
285288 def _preorder (node : SplayNode | None ) -> Iterator [Any ]:
286289 if node :
287290 yield node .value
288291 yield from _preorder (node .left )
289292 yield from _preorder (node .right )
293+
290294 yield from _preorder (self .root )
291295
292296 def postorder (self ) -> Iterator [Any ]:
293297 """Return a postorder iterator."""
298+
294299 def _postorder (node : SplayNode | None ) -> Iterator [Any ]:
295300 if node :
296301 yield from _postorder (node .left )
297302 yield from _postorder (node .right )
298303 yield node .value
304+
299305 yield from _postorder (self .root )
300306
301307 def get_min (self ) -> Any :
@@ -325,4 +331,4 @@ def is_empty(self) -> bool:
325331 def clear (self ) -> Self :
326332 """Clear the tree."""
327333 self .root = None
328- return self
334+ return self
0 commit comments