Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АиПА / include / algraph.doc
Скачиваний:
16
Добавлен:
07.02.2016
Размер:
582.14 Кб
Скачать

Int biclen(int n)

Функция возвращает размер бинарного кода (количество 16-битовых слов) по заданному числу вершин графа n. Функция используется для создания массивов, предназначенных для сохранения бинарных кодов графов.

Int bic_graph(const graph& g, word* bic)

Получение бинарного кода по заданной таблице связей g. Найденный бинарный код заносится в массивbic. Возвращаемое значение - размер бинарного кода (количество слов). Параметрgдолжен представлять неориентированный граф без петель и кратных ребер (значениеform-фактора должно быть равно 0).

Int bic_mat(const matad& m, word* bic)

Получение бинарного кода по заданной матрице смежности M. Полученный бинарный код заносится в массивbic. Возвращаемое значение - размер бинарного кода (количество слов). ПараметрMдолжен представлять неориентированный граф без петель и кратных ребер (значениеform-фактора должно быть равно 0).

graph graph_bic(int n, word* bic)

Функция возвращает graph-объект (таблицу связей), соответствующий бинарному кодуbicи числу вершинn.

matad mat_bic(int n, word* bic)

Функция преобразования бинарного кода в матрицу смежности. Параметры функции: n- число вершин графа,bic- массив, содержащий бинарный код.

5. Функции создания графа

Под созданием графа понимается создание объекта одного из возможных типов, представляющего граф. Каждый из классов, представляющего граф, имеет конструктор без параметров и конструктор копирования.

graph::graph()

matad::matad()

graph_v::graph_v()

graph_r::graph_r()

graph_vr::graph_vr()

Imgraph::imgraph()

Конструкторы без параметров. Вызов такого конструктора приводит к созданию объекта, соответствующего пустому графу (графу без вершин). Например, выполнение таких строк программы

graph g;

matad M;

graph_v gv;

graph_r gr;

graph_vr gvr;

imgraph img;

приведет к созданию переменных соответствующих типов, каждая из которых будет соответствовать пустому графу.

graph::graph(const graph&)

matad::matad(const matad&)

graph_v::graph_v(const graph_v&)

graph_r::graph_r(const graph_r&)

graph_vr::graph_vr(const graph_vr&)

Imgraph::imgraph(const imgraph&)

Конструкторы копирования. Вызов такого конструктора приводит к созданию объекта, который является самостоятельной копией объекта такого же типа. Например, после выполнения таких строк программы

graph g1(g2);

matad M1(M2);

graph_v gv1(gv2);

graph_r gr1(gr2);

graph_vr gvr1(gvr2);

imgraph img1(img2);

будут созданы переменные, которые будут представлять копии других объектов аналогичного типа.

graph::graph(const matad&)

Конструтор, позволяющий создать graph-объект, соответствующий заданной матрице смежности (matad-объекту).

matad::matad(const graph&)

Конструтор, позволяющий создать matad-объект, соответствующий заданной таблице связей (graph-объекту).

graph::graph(int)

matad::matad(int)

Конструктор, создает graph- илиmatad-объект, соответствующий безреберному графу с заданным числом вершин.

graph complete(int n)

Создание полного неориентированного графа с nвершинами.

graph fatring(int n, int c)

Создание графа типа fatringс числом вершинnи параметромc[6,7].

graph hamming(int n, int d)

Создание графа Хэмминга H(n,d) с числом вершин n и параметром d . О графах Хэмминга см. [6,7].

graph hcube(int m)

Создание графа типа гиперкуб, размерность которого равна m.

graph johnson(int n, int w, int d)

Создание графа Джонсона J(n,w,d) с числом вершин n и с параметрами w,d. О графах Джонсона см. [6,7].

graph k_line(int n, int k)

Создание графа типа k-lineсnвершинами. Определяется граф следующим образом[7]. Пустьg= (V,X). Создадим ребра по следующему правилу: еслиvi,vjV, то (vi ,vj)X, еслиijи |i-j|k, гдеk- параметрk-line-графа.

graph k_ring(int n, int k)

Создание графа типа k-ringсnвершинами. Граф типаk-ringопределяется следующим образом[7]. Пустьg= (V,X) ,n= |V| . Создадим ребра по следующему правилу: еслиvi,vjV, то (vi ,vj)X, еслиijиj= (i+s)modn,as{1, 2, ... ,k}, гдеk- параметрk-ring-графа. Является регулярным графом, степень графа = 2k.

graph keller(int n)

Создание графа Келлера с nвершинами. О графах Келлера см.[6,7].

graph line(int n)

Создание графа типа "линейная цепочка" с nвершинами.

graph o_graph(int n)

Создание графа типа О-граф (структура типа "кольцо") с nвершинами. Такой граф является регулярным графом степени 2.

graph petersentype(int n)

Создание графа типа графа Петерсена с nвершинами.

graph randgraph(int n, int r)

Создание случайного графа с числом вершин nи числом реберr.

graph randgraph(int n, float rx)

Создание случайного графа с числом вершин nи относительным реберным заполнениемrx.

graph sanchis(int n, int r, int d)

Создание графа Санчиса с числом вершин nи параметрамиr,d.

graph star(int n)

Создание графа типа звезда с nвершинами.

graph wheel(int n)

Создание графа типа колесо с nсекциями (и сn+1 вершинами).

Соседние файлы в папке include