1 #ifndef theplu_yat_utility_ranking_impl 2 #define theplu_yat_utility_ranking_impl 52 Impl(
const Impl& other) =
delete;
54 Impl& operator=(
const Impl& rhs) =
delete;
55 Impl& operator=(Impl&& rhs);
64 bool empty(
void)
const;
65 size_t size(
void)
const;
67 NodeBase*& root_node(
void);
68 const NodeBase* root_node(
void)
const;
69 NodeBase*& left_most(
void);
70 const NodeBase* left_most(
void)
const;
71 NodeBase*& right_most(
void);
72 const NodeBase* right_most(
void)
const;
80 void insert_and_rebalance(std::unique_ptr<NodeBase>&& element,
81 NodeBase& parent,
bool left);
89 void insert_rebalance(NodeBase* node, NodeBase* child);
92 void erase_and_rebalance(
const NodeBase* node);
95 bool validate(
void)
const;
96 bool validate(
const NodeBase*)
const;
99 size_t ranking(
const NodeBase* node)
const;
111 void relink(
const NodeBase* node, NodeBase* child);
122 NodeBase* left_rotate(NodeBase* x);
133 NodeBase* right_rotate(NodeBase* y);
135 NodeBase* right_most_;
136 void move_data(Impl&&);
137 void erase_rebalance(NodeBase* node);
138 void erase_rebalance(NodeBase* parent, NodeBase* node);
The Department of Theoretical Physics namespace as we define it.