Para um gráfico direcionado em mudança, eu gostaria de manter informações sobre componentes fortemente conectados. As operações gráficas são incrementais: somente adição de vértice e adição de aresta. Quais estruturas de dados atingem a complexidade amortizada mais conhecida para essas operações?
Se o gráfico não fosse direcionado, a resposta seria a estrutura de localização de união. E como os gráficos não direcionados podem ser vistos como casos especiais de gráficos direcionados, o limite inferior (ainda que ligeiramente) superconstante é transferido.
Para um limite superior linear, os componentes fortemente conectados podem ser calculados do zero após cada adição de borda, sem reciclar nenhum dado. Gostaria de saber se existe alguma maneira de fazer melhor.
No cenário em que preciso disso, de alguma forma, espero que os SCCs não triviais sejam a exceção e não a regra. E na ausência de ciclos, posso atingir o tempo linear no total (que é o tempo constante amortizado por operação). [EDIT:] Deixe-me esclarecer o que quero dizer. É claro que, na ausência de ciclos, não preciso acompanhar os CECs. O tempo constante amortizado é para o que faço na minha configuração, além de me preocupar com os SCCs.
Portanto, eu também estaria interessado em estruturas de dados que, em geral, não são melhores que o limite superior acima, mas usam tempo constante amortizado por operação, desde que o gráfico permaneça um DAG.