Nguyễn Thị Oanh
Bộ môn HTTT – Viện CNTT & TT
[email protected]
Chương 3: Các cấu trúc dữ liệu
đa chiều
1
Plan
2
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
1. k-D trees
3
k-D trees
4
Dành lưu trữ dữ liệu điểm đa chiều (k-dimension)
– 2-tree: lưu DL điểm 2 chiều
– 3-tree: lưu DL điểm 3 chiều
– …
– Mỗi điểm là vector có k phần tử
Không lưu DL vùng
k-D trees
5
Là mở rộng của cây nhị phân
Ở mỗi mức, các bản ghi sẽ được chia theo giá trị của
1 chiều nhất định.
– Mức 0: giá trị chiều 0
– Mức 1: giá chị chiều 1, …
YVALNYVALMLLINKNM
:.
& :.
2-D trees
9
Ví dụ:
Thứ tự insert:
INFO
XVAL
YVAL
Banja Luka
19
45
Derventa
40
50
Toslic
38
38
Tuzla
54
40
Sinji
4
4
Insertion/ Search in 2-D trees
10
Nút cần thêm: P(info, x, y)
– Nếu nút N ở mức chẵn :
– Nếu nút N ở mức lẻ:
XVALRXVALPRLINKNP
XVALRXVALMLLINKNM
:.
& :.
YVALRYVALPRLINKNP
YVALRYVALMLLINKNM
:.
& :.
Tìm nút thay thế cho nút bị xóa:
13
Nếu N: mức chẵn
– T
r
: không rỗng nút R trong cây con T
r
có giá trị XVAL
nhỏ nhất là nút thay thế
– T
r
: rỗng tìm nút thay thế bên cây T
l
(How ?)
Tìm nút R’ bên cây trái T
l
2-D trees k-D tree
15
p(x
1
, x
2
, , x
k
)
N: 1 nút thuộc k-D tree nếu
– Mọi nút M thuộc cây bên trái của N: M.VAL[i] <N.VAL[i]
– Mọi nút P thuộc cây bên phải của N: P.VAL[i] >=N.VAL[i]
i = level(N) mod k
INFO
VAL[1]
VAL[2]
…
VAL[k]
LLINK
RLINK
k-D trees: Lưu ý
16
Cây không cân bằng
Tùy thuộc vào thứ tự dữ liệu được insert vào
Một số biến thể:
– k-D-B-tree: k-D tree + cây cân bằng (B-tree)
– LSD-tree (Local Split Decision tree): đánh chỉ mục 2 mức:
main memory + disk
– VA-file (Vector Approximation file)
Thêm DL vào cây tứ phân
21
Xóa DL trong cây tứ phân
22
Nút lá: đơn giản
– Thiết lập lại con trỏ ở nút cha = NULL và giải phóng nút
cần xóa
Nút trong: phức tạp
– Cần tìm nút thay thế ?????
– VD: Xóa nút gốc trong ví dụ trên ?
Tìm nút thay thế khi xóa nút trong
23
Nút xóa : N
Nút thay thế R đảm bảo:
Ex. N: « Banja Luka » R: « Toslic »
Không phải lúc nào cũng tìm được nút thay thế
SERRSENR
NERRNENR
SWRRSWNR
NWRRNWNR
.4.4
.3.3
.2.2
.1.1
Xóa DL trong cây tứ phân ( )
24