Файл ArcGraph.h

#include "graph.h" // Определение родительского класса

// Описание класса для представления A-графа

class ArcGraph : public Graph {

// Дуга представлена элементом списка, содержащим номера

// концов дуги и указатель на следующий элемент списка

struct Arc {

int begin, end;

Arc *next;

 

// Конструктор дуги.

Arc{int b, int e, Arc *n = NULL) {

begin = b; end = e; next = n; )

};

 

// Список дуг представлен, как обычно,

// указателями на первый и последний элементы списка

Arc *first, *last;

 

// arcCount - счетчик числа дуг-элементов списка

int arcCount;

 

// vertexNumber - количество вершин графа, используемое

//в данном представлении только для контроля номеров вершин

int vertexNumber;

 

public:

 

// Конструктор графа инициализирует пустой список

// и запоминает количество вершин графа.

ArcGraph(int n) {

first = last = NULL; arcCount = 0; vertexNumber = n;

}

 

// Функция подсчета количества вершин выдает запомненное значение

int vertexCoun() const { return vertexNumber; }

 

// Операции над дугами:

void addArc(int from, int to);

bool hasArc(int from, int to) const;

};