Node::set_parent() shared_ptrつかうと循環参照になるのでとりあえず普通のポインタ