私は、特定のバイナリ ツリーを 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 をオンにするには、ツリーがどのように見えるかを知る必要があります。たとえば、ルート、その左側のノード、および左側のノードの子です。
bool
これは、どの LED をオンにする必要があるかを認識している 3x2 アレイを使用することで実現できると思います。
最後に問題は、3x2 配列のどのインデックスbool
をマークするtrue
かを知るにはどうすればよいかということです。再帰を使用するためadd data(int data)
、おそらく「左と右」を含む配列を使用することは最良の選択肢ではない可能性があります(その可能性を機能させる私の無能さは別として…)。
ここで何をすべきですか?