Tôi đang tìm một thuật toán cây khoảng cách tương tự như cây khoảng trắng đen trong CLR nhưng hỗ trợ hợp nhất các khoảng theo mặc định để không bao giờ có khoảng thời gian trùng lặp.Thuật toán cây khoảng thời gian hỗ trợ kết hợp các khoảng thời gian không có chồng chéo
Nói cách khác nếu bạn có cây có hai khoảng [2,3] và [5,6] và bạn đã thêm khoảng [4,4], kết quả sẽ là một cây chỉ chứa một khoảng [2], 6].
Cảm ơn
Cập nhật: trường hợp sử dụng tôi đang xem xét đang tính đóng cửa chuyển tiếp. Tập hợp khoảng thời gian được sử dụng để lưu trữ các bộ kế thừa vì chúng đã là found to be quite compact. Nhưng nếu bạn đại diện cho khoảng thời gian đặt chỉ là một danh sách liên kết tôi đã tìm thấy rằng trong một số trường hợp họ có thể trở nên khá lớn và do đó cũng như thời gian cần thiết để tìm điểm chèn. Do đó quan tâm của tôi trong cây khoảng cách. Ngoài ra có thể có khá nhiều sáp nhập một cây với một cây khác (tức là một hoạt động OR được đặt) - nếu cả hai cây lớn thì tốt hơn nên tạo một cây mới bằng cách sử dụng các trình tự sắp xếp của cả hai cây thay vì chèn lặp lại của mỗi khoảng thời gian.
Tôi đã xóa câu trả lời của mình vì tôi đã bỏ qua một số trường hợp. Nó vẫn còn có thể sửa chữa, nhưng sẽ trở nên phức tạp hơn rất nhiều. Dù sao, kể từ khi bạn cập nhật để nói rằng bạn chủ yếu sẽ được sáp nhập toàn bộ cây, câu trả lời không có vẻ hữu ích nữa, như traversal trong trật tự sẽ được nhanh hơn. – interjay
Oh ok. Đôi khi tôi sẽ sáp nhập hai cây lớn khi inorder có thể sẽ nhanh hơn, nhưng thường xuyên hơn tôi sẽ thêm một cây nhỏ vào một cái cây lớn. –