Cho một đồ thị chu kỳ có hướng, , có thể hỗ trợ hiệu quả các hoạt động sau không?
- : Xác định nếu có một đường dẫn trong G từ nút a đến nút b
- : Thêm một cạnh từ a đến b trong đồ thị G
- : Loại bỏ cạnh từ a đến b trong G
- : Thêm một đỉnh vào G
- : Loại bỏ một đỉnh khỏi G
Một vài lưu ý:
- Nếu chúng ta không được phép , có vẻ như nó sẽ được dễ dàng để duy trì thông tin mối, sử dụng một cấu trúc kiểu dữ liệu rời nhau-set.
- Rõ ràng, có thể được thực hiện sử dụng độ sâu hoặc tìm kiếm theo chiều rộng, sử dụng các đại diện dựa trên con trỏ ngây thơ của đồ thị. Nhưng điều này là không hiệu quả.
Tôi hy vọng thời gian khấu hao không đổi hoặc logarit cho cả ba thao tác. Điều này có thể không?
remove
Cũng loại bỏ các cạnh sự cố? Nếu vậy, yêu cầu thao tác đó là thời gian O (log n) có thể là quá nhiều để hy vọng LỚN.