Mnas-Graph » MNAS-GRAPH

Пакет mnas-graph определяет базовые функции для создания структуры данных типа Граф и ее отображения через graphviz.

Пакет определяет следующие основные классы:

Пример использования:

(let*
      ((g (make-instance 'mnas-graph:<graph>))
       (v1 (make-instance 'mnas-graph:<node> :owner g :name "v1"))
       (v2 (make-instance 'mnas-graph:<node> :owner g :name "v2"))
       (v3 (make-instance 'mnas-graph:<node> :owner g :name "v3"))
       (r1 (make-instance 'mnas-graph:<edge> :from v1 :to v2))
       (r2 (make-instance 'mnas-graph:<edge> :from v2 :to v3))
       (r3 (make-instance 'mnas-graph:<edge> :from v3 :to v1)))
    (mnas-graph:insert-to v1 g)
    (mnas-graph:insert-to v2 g)
    (mnas-graph:insert-to v3 g)
    (mnas-graph:insert-to r1 g)
    (mnas-graph:insert-to r2 g)
    (mnas-graph:insert-to r3 g)
    (mnas-graph:view-graph g))

Функции

make-random-graph(&key (node-max-number 100) (edges-number node-max-number))

Описание: make-random-graph создает случайный граф.

Переменые:

  • node-max-number - количество вершин графа;
  • edges-number - количество вершин графа.

Пример использования:

(make-random-graph)

make-graph(edges &key nodes)
Описание: make-graph возвращает граф с ребрами edges и вершинами вершинами nodes.

Обобщенные функции

nea-to-nodes(node)
Возвращает хеш-таблицу вершин, с которыми соединена вершина node, в направлении от них к ней
nea-from-nodes(node)
Возвращает хеш-таблицу вершин, с которыми соединена вершина node, в направлении от нее к ним

Методы

<graph>-nodes-count((graph <graph>))
Описание: метод <graph>-nodes-count возвращает количество вершин графа graph.
nea-to-nodes((n <node>) &aux (ht (make-hash-table)))
Описание: nea-to-nodes возвращает хеш-таблицу вершин, с которыми соединена вершина <node>, в направлении от нее к ним.
<graph>-edges-count((graph <graph>))
Описание: метод <graph>-nodes-count возвращает количество ребер графа graph.
connected-nodes((n <node>) &key (direction direction-to) &aux (ht (make-hash-table)))
Описание: connected-nodes ((n <node>) &key (direction :direction-to) &aux (ht (make-hash-table )))!!!!!!
nea-from-nodes((n <node>) &aux (ht (make-hash-table)))
Описание: nea-from-nodes Возвращает хеш-таблицу вершин, с которыми соединена вершина <node>, в направлении от них к ней.

Классы

<graph>
OptionValue
Superclasses:(t)
Metaclass:standard-class
Default Initargs:nil
Описание: класс <graph> представляет граф.
  • nodes
    Хешированная таблица вершин графа
    OptionValue
    Allocation:instance
    Type:nil
    Initform:(make-hash-table)
    Accessors:(<graph>-nodes)
  • edges
    Хешированная таблица ребер графа
    OptionValue
    Allocation:instance
    Type:nil
    Initform:(make-hash-table)
    Accessors:(<graph>-edges)
<edge>
OptionValue
Superclasses:(t)
Metaclass:standard-class
Default Initargs:nil
Описание: класс <edge> представляет ребро графа.
  • start
    Начальная вершина ребра
    OptionValue
    Allocation:instance
    Type:nil
    Initarg::from
    Initform:nil
    Accessors:(<edge>-from)
  • end
    Конечная вершина ребра
    OptionValue
    Allocation:instance
    Type:nil
    Initarg::to
    Initform:nil
    Accessors:(<edge>-to)
<node>
OptionValue
Superclasses:(t)
Metaclass:standard-class
Default Initargs:nil
Описание: класс <node> представляет вершину графа.
  • name
    Имя вершины
    OptionValue
    Allocation:instance
    Type:nil
    Initarg::name
    Initform:nil
    Accessors:(<node>-name)
  • owner
    Владелец вершины объект типа graph
    OptionValue
    Allocation:instance
    Type:nil
    Initarg::owner
    Initform:nil
    Accessors:(<node>-owner)
  • counter
    Количество, созданных вершин
    OptionValue
    Allocation:class
    Type:nil
    Initform:0
    Accessors:(<node>-counter)