pub trait NodeOps<K: Ord, V> {
Show 17 methods // Required methods fn is_child(&self) -> bool; fn get_state(&self) -> NodeState; fn is_same(&self, other: &Self) -> bool; fn key_cmp(&self, other: &Self) -> Ordering; fn take_parent(&mut self) -> Option<NodePtr<K, V>>; fn take_parent_strong(&mut self) -> Option<NodePtr<K, V>>; fn take_left(&mut self) -> Option<NodePtr<K, V>>; fn take_right(&mut self) -> Option<NodePtr<K, V>>; fn parent(&self) -> &Option<NodePtr<K, V>>; fn parent_mut(&mut self) -> &mut Option<NodePtr<K, V>>; fn left(&self) -> &Option<NodePtr<K, V>>; fn left_mut(&mut self) -> &mut Option<NodePtr<K, V>>; fn right(&self) -> &Option<NodePtr<K, V>>; fn right_mut(&mut self) -> &mut Option<NodePtr<K, V>>; fn key(&self) -> &K; fn value(&self) -> &V; fn value_mut(&mut self) -> &mut V;
}
Expand description

ポインタに対する操作

Required Methods§

source

fn is_child(&self) -> bool

与えられたノードが子ノードであるかを判定する

source

fn get_state(&self) -> NodeState

与えられたノードが

  • 空のノード
  • 根ノード
  • 親の左の子
  • 親の右の子

のどれかを判定する.

source

fn is_same(&self, other: &Self) -> bool

ポインタの同一性判定

source

fn key_cmp(&self, other: &Self) -> Ordering

ポインタの半順序

source

fn take_parent(&mut self) -> Option<NodePtr<K, V>>

親へのポインタを切り離す

source

fn take_parent_strong(&mut self) -> Option<NodePtr<K, V>>

親へのポインタを切り離し,強参照を取得する

source

fn take_left(&mut self) -> Option<NodePtr<K, V>>

左の子へのポインタを切り離す

source

fn take_right(&mut self) -> Option<NodePtr<K, V>>

右の子へのポインタを切り離す

source

fn parent(&self) -> &Option<NodePtr<K, V>>

親の参照を取得する

source

fn parent_mut(&mut self) -> &mut Option<NodePtr<K, V>>

親の可変参照を取得する

source

fn left(&self) -> &Option<NodePtr<K, V>>

左の子への参照を取得する

source

fn left_mut(&mut self) -> &mut Option<NodePtr<K, V>>

左の子への可変参照を取得する

source

fn right(&self) -> &Option<NodePtr<K, V>>

右の子への参照を取得する

source

fn right_mut(&mut self) -> &mut Option<NodePtr<K, V>>

右の子への可変参照を取得する

source

fn key(&self) -> &K

キーへの参照を取得する

source

fn value(&self) -> &V

バリューへの参照を取得する

source

fn value_mut(&mut self) -> &mut V

バリューへの可変参照を取得する

Implementors§

source§

impl<K: Ord, V> NodeOps<K, V> for NodePtr<K, V>