Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
484 KB
Nội dung
Chương 3: Các cấu trúc liệu đa chiều Nguyễn Thị Oanh Bộ môn HTTT – Viện CNTT & TT oanhnt@soict.hut.edu.vn Plan Lưu DL dạng điểm – k-D trees – Point Quadtrees – MX-Quadtrees Lưu DL dạng vùng (chữ nhật): – R-trees k-D trees k-D trees Dành lưu trữ liệu điểm đa chiều (k-dimension) – 2-tree: lưu DL điểm chiều – 3-tree: lưu DL điểm chiều –… – Mỗi điểm vector có k phần tử Khơng lưu DL vùng k-D trees Là mở rộng nhị phân Ở mức, ghi chia theo giá trị chiều định – Mức 0: giá trị chiều – Mức 1: giá chị chiều 1, … – Mức k-1: giá trị chiều k-1 – Mức k: giá trị chiều 0, … VD: 2-D trees VD: 3-D trees x y z x Cây xây dựng phụ thuộc vào thứ tự điểm đưa vào 2-D trees Cấu trúc nút: INFO LLINK XVAL YVAL RLINK Định nghĩa: 2-d tree nhị phân thỏa mãn: – Nếu nút N mức chẵn : M N LLINK : M XVAL N XVAL & P N RLINK : P XVAL N XVAL – Nếu nút N mức lẻ: M N LLINK : M YVAL N YVAL & P N RLINK : P.YVAL N YVAL 2-D trees Ví dụ: Thứ tự insert: INFO XVAL YVAL Banja Luka 19 45 Derventa 40 50 Toslic 38 38 Tuzla 54 40 Sinji 4 Insertion/ Search in 2-D trees Nút cần thêm: P(info, x, y) Lặp: – Nút duyệt: N – Nếu N.XVAL = x N.YVAL = y ghi đè N kết thúc – Nếu N mức chẵn (0, 2, 4, …): Nếu x < N.XVAL duyệt bên trái, không duyệt bên phải – Nếu N mức lẻ (1, 3, 5, …): Nếu y < N.YVAL duyệt bên trái, 10 không duyệt bên phải Deletion in 2-D trees T: 2-D tree Nút cần xóa (XVAL, YVAL) = (x, y) Thuật tốn: – Tìm N: N.XVAL = x & N.YVAL = y – Nếu N nút lá: đặt LLINK or RLINK cha N NULL giải phóng N Kết thúc – Nếu N nút trong: Tìm nút thay (R) (Tf Tr) Thay giá trị trỏ giá trị R Lặp để xóa R 11 Tìm nút thay cho nút bị xóa ? Nếu xóa N tìm nút thay R: nút thuộc trái (N.LLINK) / phải N thuộc trái (R.LLINK) / phải tương ứng R: – Nếu nút N mức chẵn : M N LLINK : M XVAL R XVAL & P N RLINK : P XVAL R XVAL – Nếu nút N mức lẻ: M N LLINK : M YVAL R.YVAL & P N RLINK : P.YVAL R.YVAL 12 Tìm nút thay cho nút bị xóa: Nếu N: mức chẵn – Tr : không rỗng nút R Tr có giá trị XVAL nhỏ nút thay – Tr : rỗng tìm nút thay bên Tl (How ?) Tìm nút R’ bên trái Tl có XVAL nhỏ N.RLINK = N.LLINK, N.LLINK = NULL Tương tự N mức lẻ 13 Cây Tl Nút cần xóa N Cây Tr Truy vấn phạm vi 2-D trees Truy vấn phạm vi (range query): điểm (xc, yc) + khoảng cách r Tìm điểm (x,y) 2-D cho khoảng cách từ đến (xc, yc)