我正在进行一项练习,该练习代表带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)
使用递归,或许使用包含“左派和权限”的数组可能不是最佳选择(除了我无法使这种可能性发挥作用......)。
我该怎么办?