diff --git a/headers/private/kernel/util/AVLTree.h b/headers/private/kernel/util/AVLTree.h index 76d6b255eb..f0e27f83db 100644 --- a/headers/private/kernel/util/AVLTree.h +++ b/headers/private/kernel/util/AVLTree.h @@ -47,6 +47,9 @@ public: Value* Previous(Value* value) const; Value* Next(Value* value) const; + Value* LeftMost(Value* value) const; + Value* RightMost(Value* value) const; + inline Iterator GetIterator(); inline ConstIterator GetIterator() const; @@ -255,6 +258,30 @@ AVLTree::Next(Value* value) const } +template +inline typename AVLTree::Value* +AVLTree::LeftMost(Value* value) const +{ + if (value == NULL) + return NULL; + + AVLTreeNode* node = fTree.LeftMost(_GetAVLTreeNode(value)); + return node != NULL ? _GetValue(node) : NULL; +} + + +template +inline typename AVLTree::Value* +AVLTree::RightMost(Value* value) const +{ + if (value == NULL) + return NULL; + + AVLTreeNode* node = fTree.RightMost(_GetAVLTreeNode(value)); + return node != NULL ? _GetValue(node) : NULL; +} + + template inline typename AVLTree::Iterator AVLTree::GetIterator()