#ifndef NODE_H_
#define NODE_H_
#include "LinkedList.h"
#include <string>
//#include "SphierStruct.h"
using namespace std;

class Node
{
	
public:

    typedef pair<Node*, int> Neighbor;
    int ID;
	int layerNum;
	int position;
	int value;
	LinkedList<Neighbor> neighbors;
	string name;
	Node();
	Node(int id, int layer,string name);
	Node(int id, int layer);
	void addNeighbor(Neighbor neighbor);
	bool compareTo(Node& other);
    bool operator ==(Node& other);
    void setPosition(int pos);
	void setPositionBary();
    bool hasNeighbor(Node* n);
    Neighbor findNeighbor(Node* n);
    bool positionChanged;
    void setValue(int newVal);
    int getValue();
    
    friend class SphierStruct;
};





#endif /*NODE_H_*/
