Tôi có biểu đồ bắt đầu bằng một nút gốc, đơn. Các nút được thêm từng cái một vào biểu đồ. Tại thời điểm tạo nút, chúng phải được liên kết đến nút gốc hoặc đến một nút khác, bằng một cạnh duy nhất. Các cạnh cũng có thể được tạo và xóa (từng cái một, giữa hai nút bất kỳ). Các nút có thể bị xóa từng lần một. Tạo nút và cạnh, thao tác xóa có thể xảy ra theo bất kỳ thứ tự tùy ý nào. OK, vì vậy đây là câu hỏi của tôi: Khi một cạnh bị xóa, có thể xác định, trong thời gian không đổi (tức là với thuật toán O (1)), nếu làm điều này sẽ chia đồ thị thành hai đồ thị rời nhau? Nếu nó sẽ, sau đó mà các cạnh của cạnh sẽ nút gốc thuộc về?Làm thế nào để phát hiện nếu phá vỡ một cạnh sẽ làm cho một đồ thị rời rạc?
Tôi sẵn sàng duy trì, trong giới hạn hợp lý, bất kỳ cấu trúc dữ liệu bổ sung nào có thể tạo thuận lợi cho việc phát sinh thông tin này.
Có thể không thể thực hiện điều đó trong O (1), nếu có bất kỳ gợi ý nào về văn học sẽ được đánh giá cao.
Chỉnh sửa: Biểu đồ là đồ thị được hướng.
Chỉnh sửa 2:
OK, có thể tôi có thể hạn chế trường hợp xóa các cạnh khỏi nút gốc
. [Chỉnh sửa 3: không, thực sự] Ngoài ra, không có vùng đất cạnh nào vào nút gốc.
Nếu một cạnh kết nối đồ thị với nút lá sẽ bị xóa, nó có được giả định xóa nút lá không? Ngoài ra, việc xóa một nút lá cũng có xóa cạnh kết nối nó với phần còn lại của biểu đồ không? – VeeArr
@VeeArr: Xóa một nút lá cũng xóa tất cả các cạnh liên kết tới nó. Đối với việc xóa một cạnh mà kết nối một nút lá và một nút không phải lá, cần được bao phủ bởi chính câu hỏi đó (xóa một cạnh tùy ý). –
Tại sao bạn không cho tôi biết? Bạn là ** the_graph_guy ** !! –