struct
Node
{
type
::
NodeType
;
if
(
type
==
Leaf
)
leaf
::
Leaf
;
if
(
type
==
Node
)
nodeA
::
Node
;
if
(
type
==
Node
)
nodeB
::
Node
;
}
enum
NodeType
::
byte
{
0
:
Empty
;
1
:
Node
;
2
:
Leaf
;
else
:
[
error
(
"Invalid node type"
)];
}