0

我正在做一个用 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,我需要知道树的外观。例如,根、其左节点和左节点的子节点。

我认为这可以通过使用 3x2bool阵列来完成,该阵列知道应该打开哪些 LED。

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

我应该在这里做什么?

4

0 回答 0