好的,我确信这里有一些愚蠢的东西。我还没有真正使用枚举,所以也许我只是做了一些不正确的事情。我正在创建一个红黑树实现,我在类Node中使用枚举,如果它是红色或黑色节点。我已经逐步完成了代码,当我为我想要插入的给定节点达到这个语句时,它不应该执行循环,因为父颜色是黑色而不是红色!由于某种原因,这评估为真,我不知道为什么......任何帮助将不胜感激!谢谢! :)
while(x->m_parent->m_color == (Node::Color::ST_Red)) ;
这是我的Node类的一部分,以防万一。
class Node
{
public:
Node()
{
m_data = 0 ;
m_color = Node::Color::ST_Red ;
}
enum Color
{
ST_Red,
ST_Black
};
private:
int m_data ;
Color m_color ;
Node* m_parent;
};