Я работаю в сети, используя Graph-Tool.
В наборе всех вершин есть определенные группы вершин с четко определенным порядком, которые я хотел бы отслеживать. До сих пор я поддерживал внешнюю структуру данных со ссылками на вершины в правильном порядке. Однако, когда вершина удаляется, все вершины с индексом, превышающим индекс, который был удален, переиндексируются, что уничтожает ссылки, которые я хранил в моей внешней структуре данных.
Как правильно сохранить упорядоченное подмножество вершин, чтобы оно не разрывалось, когда (например) нулевая вершина удаляется из графа?
from graph_tool.all import *
graph = Graph(directed=False)
graph.add_vertex(5)
""" fifth_vertex is a reference to the vertex with an index of 5. """
fifth_vertex = graph.add_vertex()
assert graph.vertex_index[fifth_vertex] == 5
""" upon removal of a vertex at index i, all vertices of index > i are reindexed. fifth_vertex no longer references a vertex. """
graph.remove_vertex(graph.vertex(0))
""" assertion error """
assert fifth_vertex in graph.get_vertices()