(đã hỏi trên trang web chính , nhưng cũng hỏi ở đây để được bảo hiểm tốt hơn, xin lỗi)
Vì tôi biết về Cấu trúc dữ liệu ngắn gọn, tôi rất cần một cái nhìn tổng quan tốt về hầu hết các phát triển gần đây trong lĩnh vực đó.
Tôi đã googled và đọc rất nhiều bài viết tôi có thể thấy trong đầu kết quả google theo yêu cầu từ đầu của tôi. Tôi vẫn nghi ngờ tôi đã bỏ lỡ điều gì đó quan trọng ở đây.
Đây là những chủ đề được tôi đặc biệt quan tâm:
Mã hóa ngắn gọn của cây nhị phân với các hoạt động hiệu quả là lấy cha mẹ, con trái / phải, số phần tử trong một cây con.
Câu hỏi chính ở đây là như sau: tất cả các cách tiếp cận mà tôi biết về giả sử các nút cây được liệt kê theo thứ tự đầu tiên (như trong công việc tiên phong trong lĩnh vực này Jacobson, G. J (1988). Cấu trúc dữ liệu tĩnh) có vẻ phù hợp với nhiệm vụ của tôi Tôi xử lý các cây nhị phân khổng lồ được bố trí theo chiều sâu và các chỉ số nút đầu tiên là các khóa cho các thuộc tính nút khác, vì vậy việc thay đổi bố cục cây có một số chi phí đối với tôi mà tôi muốn giảm thiểu. Do đó, quan tâm đến việc có được các tài liệu tham khảo cho các công trình xem xét bố trí cây BF khác.
Các mảng vật phẩm có độ dài thay đổi lớn trong bộ nhớ ngoài. Các mảng là bất biến: Tôi không cần thêm / xóa / chỉnh sửa các mục. Yêu cầu duy nhất là thời gian truy cập phần tử O (1) và chi phí càng thấp càng tốt, tốt hơn là cách tiếp cận bù và kích thước đơn giản. Dưới đây là một số thống kê tôi thu thập về dữ liệu điển hình cho nhiệm vụ của mình:
số lượng vật phẩm tiêu biểu - hàng trăm triệu, lên tới hàng chục milliards;
khoảng 30% các mặt hàng có chiều dài không quá 1 bit ;
Các mục 40% -60% có độ dài nhỏ hơn 8 bit;
chỉ một vài phần trăm của các mục có độ dài từ 32 đến 255 bit (255 bit là giới hạn)
chiều dài mục trung bình ~ 4 bit +/- 1 bit.
bất kỳ phân phối độ dài vật phẩm nào khác về mặt lý thuyết là có thể nhưng tất cả các trường hợp thực tế thú vị đều có số liệu thống kê gần với mô tả ở trên.
Liên kết đến các bài viết về bất kỳ sự phức tạp, hướng dẫn về bất kỳ thư viện C / C ++ nào, ít nhiều được ghi lại, - bất cứ điều gì hữu ích cho bạn trong các nhiệm vụ tương tự hoặc những gì trông giống như điều đó theo phỏng đoán của bạn - tất cả những điều đó đều được đánh giá cao.
Cập nhật : Tôi quên thêm vào câu hỏi 1: cây nhị phân tôi đang xử lý là bất biến. Tôi không có yêu cầu thay đổi chúng, tất cả những gì tôi cần chỉ là truyền tải chúng theo nhiều cách khác nhau luôn chuyển từ nút sang con hoặc sang cha mẹ, do đó chi phí trung bình của các hoạt động đó là O (1).
Ngoài ra, cây thông thường có hàng triệu nút và không nên được lưu trữ đầy đủ trong RAM.