You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
513 B
C++

#pragma once
#include <queue>
#include "ifaces/INode.h"
#include "iterators/DFSIterator.h"
#include "iterators/BFSIterator.h"
template<typename Policy>
class Traversal {
INode* start;
public:
explicit Traversal(INode* start) : start(start) {}
explicit Traversal(NodePtr start) : start(start.get()) {}
Policy begin() const { return Policy(start); }
Policy end() const { return Policy(nullptr); }
};
using TraversalDFS = Traversal<DFSIterator<INode>>;
using TraversalBFS = Traversal<BFSIterator<INode>>;