#ifndef NODE_H #define NODE_H #include #include "graph.h" #include "types.h" class Node { public: Node(); void AddNeighbour( Node& other, distance_t dist ); static distance_t INFINITE_DISTANCE; void SetDistance( distance_t distance ); void SetVisited( bool visited ); void SetPrevious( const Node& previous ); distance_t GetDistance() const; bool IsVisited() const; const Node* GetPrevious() const; typedef std::vector< std::pair > NeighbourList; NeighbourList& Neighbours(); private: distance_t distance_; bool visited_; NeighbourList neighbours_; const Node* previous_; }; #endif