我正在做一个用 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)
使用递归,也许使用包含“左右”的数组可能不是最好的选择(除了我无能使这种可能性发挥作用......)。
我应该在这里做什么?