跟踪二叉树的路径

时间:2013-11-05 20:16:47

标签: c++ tree

我正在进行一项练习,该练习代表带LED的某个二叉树。我想我已经有了二叉树了:

NodeB::NodeB(int data)
{
  _left = NULL;
  _right = NULL;

  _data = data;
}

int NodeB::getdata(){
    return _data;
}

int NodeB::adddata(int data){
    int toReturn;

    if(data >= _data){
        if(_right == NULL){
            NodeB* n = new NodeB(data);
            _right = n;
            toReturn = 1;
        }

        else{
            toReturn = _right->adddata(data);
        }
    }

    else{
        if(_left == NULL){
            NodeB* n = new NodeB(data);
            _left = n;
            toReturn = -1;
        }

        else{
            toReturn = _left->adddata(data);
        }
    }

    return toReturn;
}

我也有一个矩阵:

int matrix[3][2][4] = { { {line1, controlr, controlg, line2}, {controlr, line1, controlg, line2} },
                    { {line1, controlg, controlr, line2}, {controlg, line1, controlr, line2} },
                    { {line2, controlg, controlr, line1}, {controlg, line2, controlr, line1} } };

打开每个LED的数据。每个LED代表一个节点。


为了能够打开正确的LED,我需要知道树的外观。例如,root,其左节点和左节点的子节点。

我认为这可以通过使用3x2 bool数组来实现,该数组知道应该打开哪些LED。

最后的问题是,如何才能知道要标记bool的3x2 true数组的哪个索引?由于add data(int data)使用递归,或许使用包含“左派和权限”的数组可能不是最佳选择(除了我无法使这种可能性发挥作用......)。

我该怎么办?

0 个答案:

没有答案
相关问题