Cây tứ phân matrix MX (MX-Quadtrees)

Một phần của tài liệu Cấu trúc dữ liệu đa phương tiện và mô hình cơ sở dữ liệu hình ảnh (Trang 39)

Trong cả hai trƣờng hợp cây 2-d và cây tứ phân điểm, hình thù của cây phụ thuộc vào thứ tự các đối tƣợng đƣợc chèn vào cây. Đặc biệt, thứ tự ảnh hƣởng đến chiều cao của cây, do đó ảnh hƣởng đến độ phức tạp của các thao tác tìm kiếm và chèn. Mỗi nút N của cây 2-d và cây tứ phân điểm biểu diễn vùng và phân chia vùng thành 2 (trƣờng hợp cây 2-d) hoặc 4 (trƣờng hợp cây tứ phân) vùng con. Việc phân chia có thể không đều vì nó phụ thuộc vào vị trí điểm (N.XVAL, N.YVAL) trong vùng biểu diễn bởi N.

Ngƣợc lại, mục tiêu của cây MX-quadtree là để đảm bảo hình dạng ( và chiều cao) của cây độc lập với số lƣợng các nút của cây, cũng nhƣ thứ tự chèn các nút này. Thêm nữa, MX-quadtree tập trung vào việc đem lại các giải thuật xoá và tìm kiếm có hiệu quả.

Một cách ngắn gọn, cây MX-quatree làm việc nhƣ sau: Đầu tiên, giả định rằng bản đồ đang đƣợc phân thành một lƣới kích thƣớc (2k x 2k). Ngƣời phát triển ứng dụng tự do lựa chọn k và một khi nó đƣợc chọn thì nó phải cố định.

MX-quadtree có cấu trúc nút tƣơng tự nhƣ cây tứ phân điểm, đó là chúng có kiểu newqtnodetype. Có một sự khác biệt là gốc của MX-quadtree miêu tả vùng xác định bởi XLB = 0, XUB = 2k, YLB = 0, YUB = 2k. Hơn nữa, khi một vùng đƣợc phân chia, nó đƣợc chia ở giữa. Do vậy, nếu N là một nút, khi đó các vùng thể hiện bởi bốn cành của N đƣợc mô tả theo bảng 2.3 dƣới đây. Trong bảng này, w ký hiệu chiều rộng của vùng đƣợc biểu diễn bởi N và đƣợc cho bởi w = N.XUB – N.XLB.

Do tất cả các vùng đƣợc biểu diễn bởi các nút trong MX-quadtree là các vùng vuông, nên w = N.YUB – N.YLB.[4,6]

Con XLB XUB YLB YUB

NW N.XLB N.XLB + w/2 N.YLB + w/2 N.YLB + w

SW N.XLB N.XLB + w/2 N.YLB N.YLB + w/2

NE N.XLB + w/2 N.XLB + w N.YLB + w/2 N.YLB + w

SE N.XLB + w/2 N.XLB + w N.YLB N.YLB + w/2

Bảng 2.3

Một phần của tài liệu Cấu trúc dữ liệu đa phương tiện và mô hình cơ sở dữ liệu hình ảnh (Trang 39)