Mam wykres, który zaczyna się od pojedynczego węzła głównego. Węzły są dodawane jeden po drugim do wykresu. W czasie tworzenia węzła muszą być połączone z węzłem głównym lub innym węzłem za pomocą pojedynczej krawędzi. Krawędzie można również tworzyć i usuwać (jeden po drugim, między dowolnymi dwoma węzłami). Węzły można usuwać pojedynczo. Tworzenie węzłów i krawędzi, operacje usuwania mogą się zdarzyć w dowolnej kolejności.Jak wykryć, czy złamanie krawędzi spowoduje rozłączenie wykresu?
OK, więc oto moje pytanie: Kiedy krawędź jest usuwana, czy możliwe jest określenie w stałym czasie (tj. Z algorytmem O (1)), czy w ten sposób podzieli się wykres na dwie rozłączne podgrafy? Jeśli tak, to po której stronie brzegu będzie węzeł główny?
Jestem skłonny utrzymać, w rozsądnych granicach, wszelkie dodatkowe struktury danych, które mogą ułatwić wyprowadzenie tych informacji.
Być może nie jest to możliwe w O (1), jeśli tak, wszelkie wskazówki do literatury zostaną docenione.
Edytuj: Wykres jest skierowanym wykresem.
Edycja 2:
OK, może mogę ograniczyć skrzynkę do usunięcia krawędzi z węzła głównego
. [Edit 3: not, actually] Również, żaden brzeg nie trafi do węzła głównego.
Jeżeli krawędź łącząca wykres do węzła liścia mają być usunięte, to zakłada się, aby usunąć węzeł liścia, jak również? Alternatywnie, czy usunięcie węzła liści również usuwa krawędź łączącą go z resztą wykresu? – VeeArr
@VeeArr: Usunięcie węzła liść usuwa także wszystkie krawędzie, które się do niego prowadzą. Jeśli chodzi o usuwanie krawędzi, która łączy węzeł-liść i węzeł inny niż liść, powinno to zostać pokryte przez samo pytanie (usunięcie arbitralnej krawędzi). –
Dlaczego mi nie powiesz ?! Jesteś ** the_graph_guy ** !! –