Мне нужен STL-подобный двунаправленный итератор (operator <, begin (), rbegin (), end (), rend ()) в качестве внутреннего класса для следующего (я уже потратил много времени сам на сборку рабочее дерево из статьи C # в J Object Tech и переведенной на C ++): </p>
template<typename K, typename V> class rbtree {
public:
rbtree(){
root = NULL;
numberElements = 0;
insertedNode = NULL;
nodeBeingDeleted = NULL; // Set in DeleteNode
siblingToRight = false; // Sibling of curNode
parentToRight = false; // Of grand parent
nodeToDeleteRed = false; // Color of deleted node
}
//...
private:
struct Node {
// Fields
K key; // Generic object held by each node
Node* left; Node* right; Node* parent; // Links to children and parent
bool red;// = true; // Color of node
// Constructor
Node(){
red = true;
}
Node(K key, Node* parent) {
this->key = key;
this->parent = parent;
left = NULL; right = NULL;
red = true;
}
};
// Fields
Node* root;
//...
};