class Node
{
public:
Node(const int &_item):item(_item){}
Node(const vector<int> &_itemset):itemset(_itemset){}
//private:
int item;
vector<int> itemset;
map<int, shared_ptr<Node>, item_cmp> children;
map<int, double, item_cmp> util_list;
};
class AM_Tree
{
public:
AM_Tree(const vector<int> &itemset){
root = make_shared<Node>(itemset);
}
void insert(const map<int, double, item_cmp> &);
void printIUTable()
void printNode(const shared_ptr<Node> &ptr)
void printHeaderTable()
//private:
map< vector<int>, IUPair, item_cmp> IUTable;
map<int, list<shared_ptr<Node>>, item_cmp> HeaderTable;
shared_ptr<Node> root;
};
Y2xhc3MgTm9kZQp7CnB1YmxpYzoKICAgIE5vZGUoY29uc3QgaW50ICZfaXRlbSk6aXRlbShfaXRlbSl7fQoJTm9kZShjb25zdCB2ZWN0b3I8aW50PiAmX2l0ZW1zZXQpOml0ZW1zZXQoX2l0ZW1zZXQpe30KLy9wcml2YXRlOgoJaW50IGl0ZW07Cgl2ZWN0b3I8aW50PiBpdGVtc2V0OwoJbWFwPGludCwgc2hhcmVkX3B0cjxOb2RlPiwgaXRlbV9jbXA+IGNoaWxkcmVuOwoJbWFwPGludCwgZG91YmxlLCBpdGVtX2NtcD4gdXRpbF9saXN0Owp9OwoKY2xhc3MgQU1fVHJlZQp7CnB1YmxpYzoKICAgIEFNX1RyZWUoY29uc3QgdmVjdG9yPGludD4gJml0ZW1zZXQpewoJCXJvb3QgPSBtYWtlX3NoYXJlZDxOb2RlPihpdGVtc2V0KTsKCX0KCXZvaWQgaW5zZXJ0KGNvbnN0IG1hcDxpbnQsIGRvdWJsZSwgaXRlbV9jbXA+ICYpOwoJdm9pZCBwcmludElVVGFibGUoKQoJdm9pZCBwcmludE5vZGUoY29uc3Qgc2hhcmVkX3B0cjxOb2RlPiAmcHRyKQoJdm9pZCBwcmludEhlYWRlclRhYmxlKCkKLy9wcml2YXRlOgoJbWFwPCB2ZWN0b3I8aW50PiwgSVVQYWlyLCBpdGVtX2NtcD4gSVVUYWJsZTsKCW1hcDxpbnQsIGxpc3Q8c2hhcmVkX3B0cjxOb2RlPj4sIGl0ZW1fY21wPiBIZWFkZXJUYWJsZTsKCXNoYXJlZF9wdHI8Tm9kZT4gcm9vdDsKfTs=