将红黑树中的一些方法修改为const

This commit is contained in:
2024-09-05 23:35:08 +08:00
parent 2e670b5e1c
commit 11ce111169

View File

@@ -130,20 +130,20 @@ namespace ling {
/// 查找元素 /// 查找元素
/// 区别于findSearch此方法会在没有匹配时返回接近的节点 /// 区别于findSearch此方法会在没有匹配时返回接近的节点
Node *iterativeSearch(T key); Node *iterativeSearch(T key) const;
Node *findSearch(T key); Node *findSearch(T key) const;
/// 根节点 /// 根节点
Node *getRoot() { Node *getRoot() const {
return rootNode; return rootNode;
} }
// 查找最小结点返回tree为根结点的红黑树的最小结点。 // 查找最小结点返回tree为根结点的红黑树的最小结点。
Node *minimum(); Node *minimum() const;
// 查找最大结点返回tree为根结点的红黑树的最大结点。 // 查找最大结点返回tree为根结点的红黑树的最大结点。
Node *maximum(); Node *maximum() const;
#define rb_parent(r) ((r)->parent) #define rb_parent(r) ((r)->parent)
#define rb_color(r) ((r)->color) #define rb_color(r) ((r)->color)
@@ -157,7 +157,7 @@ namespace ling {
}; };
template<typename T> template<typename T>
typename RedBlackTree<T>::Node *RedBlackTree<T>::maximum() { typename RedBlackTree<T>::Node *RedBlackTree<T>::maximum() const {
Node *tree = rootNode; Node *tree = rootNode;
if (tree == nullptr) if (tree == nullptr)
return nullptr; return nullptr;
@@ -168,7 +168,7 @@ namespace ling {
} }
template<typename T> template<typename T>
typename RedBlackTree<T>::Node *RedBlackTree<T>::minimum() { typename RedBlackTree<T>::Node *RedBlackTree<T>::minimum() const {
Node *tree = rootNode; Node *tree = rootNode;
if (tree == nullptr) if (tree == nullptr)
return nullptr; return nullptr;
@@ -366,12 +366,12 @@ namespace ling {
} }
template<typename T> template<typename T>
typename RedBlackTree<T>::Node *RedBlackTree<T>::findSearch(T key) { typename RedBlackTree<T>::Node *RedBlackTree<T>::findSearch(T key) const {
return findSearch(rootNode, key); return findSearch(rootNode, key);
} }
template<typename T> template<typename T>
typename RedBlackTree<T>::Node *RedBlackTree<T>::iterativeSearch(T key) { typename RedBlackTree<T>::Node *RedBlackTree<T>::iterativeSearch(T key) const {
return iterativeSearch(rootNode, key); return iterativeSearch(rootNode, key);
} }