9 #ifndef __libutilxx__sella__container__radix_tree_node_H__
10 #define __libutilxx__sella__container__radix_tree_node_H__
16 template <
typename K,
typename T>
17 class radix_tree_node {
18 friend class radix_tree<K, T>;
19 friend class radix_tree_it<K, T>;
21 typedef std::pair<const K, T> value_type;
22 typedef typename std::map<K, radix_tree_node<K, T>* >::iterator it_child;
25 radix_tree_node() : m_children(), m_parent(NULL), m_value(NULL), m_depth(0), m_is_leaf(false), m_key() { }
26 radix_tree_node(
const value_type &val);
27 radix_tree_node(
const radix_tree_node&);
28 radix_tree_node& operator=(
const radix_tree_node&);
32 std::map<K, radix_tree_node<K, T>*> m_children;
33 radix_tree_node<K, T> *m_parent;
40 template <
typename K,
typename T>
41 radix_tree_node<K, T>::radix_tree_node(
const value_type &val) :
49 m_value =
new value_type(val);
52 template <
typename K,
typename T>
53 radix_tree_node<K, T>::~radix_tree_node()
56 for (it = m_children.begin(); it != m_children.end(); ++it) {