#include <limits.h>
typedef unsigned int NodeIdT;
typedef unsigned int DistanceT;

class AdjacencyGraph {
public:
  static const NodeIdT MAX_NODES = 10;        // maximale Knotenanzahl
  static const DistanceT INFINITE = UINT_MAX; // falls keine Kante da

  AdjacencyGraph();
  void makeNull();
  void insertEdge( NodeIdT from, NodeIdT to );
  void deleteEdge( NodeIdT from, NodeIdT to );
  void maxIn ( NodeIdT &node, int &degree );
  void maxOut( NodeIdT &node, int &degree );


  // Zusatzaufgabe:
  void insertEdge( NodeIdT from, NodeIdT to, DistanceT length );
  DistanceT distance( NodeIdT from, NodeIdT to );   // INFINITE falls kein Weg
private:
  DistanceT adjacencyMatrix[MAX_NODES][MAX_NODES]; // die Adjazenzmatrix
};
