From e7156146138d6422c1d4d87d60ac526c898139d6 Mon Sep 17 00:00:00 2001 From: hyche Date: Sat, 5 Aug 2017 20:23:52 +0700 Subject: [PATCH] AVLTree: forward LeftMost and RightMost method from AVLTreeBase Signed-off-by: Augustin Cavalier --- headers/private/kernel/util/AVLTree.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) 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()