Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static struct {
- template<typename R>
- R operator() (const Tree<T>& tree, std::function<R(T, R)> f, R initial) {
- return _fold([=](NodePtr node, std::function<R(R)> l, std::function<R(R)> r) {
- return [=](R x) -> R { return r(f(node->data(), l(x))); };
- }, std::function<R(R)>([](R x) -> R { return x; }), tree._root)(initial);
- }
- } inorder;
- template<typename Order>
- void print(Order order) const {
- order(*this,
- std::function<int(T data, int)>(
- [](T data, int) -> int { std::cout << data << " "; return 0; }),
- 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement