class MyClass
{
public:
private:
enum class BDTNodeType : unsigned char
{
NT_TERMINAL_ZERO,
NT_TERMINAL_ONE,
NT_TERMINAL_X,
NT_NOT_TERMINAL
};
class BDTNode
{
public:
explicit BDTNode(BDTNodeType node_type = BDTNodeType::NT_NOT_TERMINAL);
BDTNode(const BDTNode &node);
~BDTNode();
BDTNodeType type;
BDTNode *thenPtr; //1
BDTNode *elsePtr; //0
};
BDTNode *root_node;
//Constant nodes
static const BDTNode fv_nodes[3];
};
const MyClass::BDTNode MyClass::fv_nodes[3] = {
BDTNode(BDTNodeType::NT_TERMINAL_ZERO),
BDTNode(BDTNodeType::NT_TERMINAL_ONE),
BDTNode(BDTNodeType::NT_TERMINAL_X)
};
MyClass::BDTNode::BDTNode(BDTNodeType) {}
MyClass::BDTNode::BDTNode(const BDTNode &) {}
MyClass::BDTNode::~BDTNode() {};
int main() {}
Y2xhc3MgTXlDbGFzcwp7CnB1YmxpYzoKCnByaXZhdGU6CiAgICBlbnVtIGNsYXNzIEJEVE5vZGVUeXBlIDogdW5zaWduZWQgY2hhcgogICAgewogICAgICAgIE5UX1RFUk1JTkFMX1pFUk8sCiAgICAgICAgTlRfVEVSTUlOQUxfT05FLAogICAgICAgIE5UX1RFUk1JTkFMX1gsCiAgICAgICAgTlRfTk9UX1RFUk1JTkFMCiAgICB9OwoKICAgIGNsYXNzIEJEVE5vZGUKICAgIHsKICAgIHB1YmxpYzoKICAgICAgICBleHBsaWNpdCBCRFROb2RlKEJEVE5vZGVUeXBlIG5vZGVfdHlwZSA9IEJEVE5vZGVUeXBlOjpOVF9OT1RfVEVSTUlOQUwpOwogICAgICAgIEJEVE5vZGUoY29uc3QgQkRUTm9kZSAmbm9kZSk7CiAgICAgICAgfkJEVE5vZGUoKTsKCiAgICAgICAgQkRUTm9kZVR5cGUgdHlwZTsKICAgICAgICBCRFROb2RlICp0aGVuUHRyOyAgIC8vMQogICAgICAgIEJEVE5vZGUgKmVsc2VQdHI7ICAgLy8wCiAgICB9OwoKICAgIEJEVE5vZGUgKnJvb3Rfbm9kZTsKCiAgICAvL0NvbnN0YW50IG5vZGVzCiAgICBzdGF0aWMgY29uc3QgQkRUTm9kZSBmdl9ub2Rlc1szXTsKfTsKCmNvbnN0IE15Q2xhc3M6OkJEVE5vZGUgTXlDbGFzczo6ZnZfbm9kZXNbM10gPSB7CiAgICAgICAgQkRUTm9kZShCRFROb2RlVHlwZTo6TlRfVEVSTUlOQUxfWkVSTyksCiAgICAgICAgQkRUTm9kZShCRFROb2RlVHlwZTo6TlRfVEVSTUlOQUxfT05FKSwKICAgICAgICBCRFROb2RlKEJEVE5vZGVUeXBlOjpOVF9URVJNSU5BTF9YKQogICAgfTsKCgpNeUNsYXNzOjpCRFROb2RlOjpCRFROb2RlKEJEVE5vZGVUeXBlKSB7fQpNeUNsYXNzOjpCRFROb2RlOjpCRFROb2RlKGNvbnN0IEJEVE5vZGUgJikge30KTXlDbGFzczo6QkRUTm9kZTo6fkJEVE5vZGUoKSB7fTsKaW50IG1haW4oKSB7fQo=