C++, создающий взвешенный график?

descendant-or-self::*[contains(@prop,'Foo')]

Или:

/bla/a[contains(@prop,'Foo')]

Или:

/bla/a[position() <= 3]

Разделенный:

descendant-or-self::

Ось - перерывают каждый узел внизу и сам узел. Часто лучше сказать это, чем//. Я встретился с некоторыми реализациями, где//означает где угодно (потомок или сам корневого узла). Другое использование ось по умолчанию.

* or /bla/a

Тег - подстановочное соответствие и/bla/a являются полным путем.

[contains(@prop,'Foo')] or [position() <= 3]

условие в []. @prop является стенографией для атрибута:: опора, поскольку атрибут является другой поисковой осью. Кроме того, можно выбрать первые 3 при помощи положения () функция.

5
задан Anthony 6 December 2009 в 22:43
поделиться

2 ответа

Библиотека графов ускорения (BGL) предлагает тип MutablePropertyGraph , внутри которого каждое ребро и вершина могут сохранять вес как свойство. См. Пример здесь , который строит ориентированный граф со взвешенными ребрами.

5
ответ дан 14 December 2019 в 04:39
поделиться

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

3
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: