#ifndef __ADJACENCYLIST_H_
#define __ADJACENCYLIST_H_

#include "AdjacencyMatrix.h"

#include <vector>
#include <list>

class AdjacencyList {
  public:
    typedef std::list< unsigned > ListType;
    typedef std::vector< ListType > AdjListType;

  protected:
    AdjListType data;
    bool good;
    unsigned dimension;
    std::string filename;

  public:
    AdjacencyList( const AdjacencyMatrix adj );
    const AdjListType * const getData() const { return &data; }
    bool isGood() const { return good; }
    unsigned getDimension() const { return dimension; }
    void print() const;
    std::string getFilename() const { return filename; }
};

#endif /* __ADJACENCYLIST_H_ */
