【发布时间】:2011-01-22 10:06:34
【问题描述】:
我需要一个类似 STL 的双向迭代器(operator
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;
//...
};
【问题讨论】:
-
将所有代码行缩进四个(或更多)空格,以便缩进、语法高亮和自动转义。
-
选择您的代码并按“101010”按钮
-
这读起来像是合约编程的规范,而不是问题......
-
确实,问题在哪里?
-
希望你在C#翻译后不要忘记添加析构函数