1 ) ( 0 ) ( P level N
level nếu N là gốc của cõy nếu cha của N là P
quan tõm trờn nú. Cỏc điểm được đỏnh dấu bởi địa danh (thớ dụ như Banja Luka, Brcko). Thay vỡ điểm quan tõm, ứng dụng cú thể quan tõm đến vựng bản đồ. Trong trường hợp này cấu trỳc dữ liệu phải cú khả năng lưu trữ thụng tin về cỏc vựng. Hỡnh 2.1b) biểu diễn cựng bản đồ nhưng chứa một số vựng quan tõm.
Chương này chỉ ra cỏch biểu diễn dữ liệu bản đồ trờn hỡnh 2.1 bằng cỏc loại cõy k-d, cõy tứ phõn và cõy R.
2.2. Cõy k-d (k-d Trees)
Cõy k-d được sử dụng để lưu trữ dữ liệu điểm k-chiều như chỉ ra trờn hỡnh 2.1a. Khụng sử dụng nú để lưu trữ dữ liệu vựng. Như vậy, cõy 2-d (khi k=2) lưu trữ dữ liệu điểm 2-chiều, cõy 3-d lưu trữ dữ liệu điểm 3-chiều... Thớ dụ này đề cập đến dữ liệu điểm 2-d, sau đú khỏi quỏt lờn dữ liệu điểm 3-d.
2.2.1. Cấu trỳc nỳt
Trong cõy 2-d, mỗi nỳt cú cấu trỳc bản ghi nhất định với kiểu như sau:
nodetype = record INFO: infotype; XVAL: real; YVAL: real; LLINK: nodetype; RLINK: nodetype; end
Trường INFO cú thể cú kiểu bất kỳ do người sử dụng định nghĩa và phụ thuộc vào ứng dụng cụ thể. Thớ dụ, nú cú thể là trường xõu ký tự mụ tả địa danh, hay nú cú thể là bản ghi bao gồm cỏc trường name:string và population:integer...
Trường XVAL, YVAL biểu thị tọa độ điểm kết hợp với nỳt. Cỏc trường LLINK và RLINK trỏ đến hai cành.
Giả sử T trỏ đến gốc của cõy 2-d. Nếu N là nỳt trong cõy, thỡ mức của N được xỏc định qui nạp như sau:
INFO XVAL YVAL
Cõy 2-d là cõy nhị phõn bất kỳ nếu thoả món điều kiện sau:
1. Nếu N là nỳt trong cõy và level(N) là chẵn thỡ mỗi nỳt M trong cành rẽ nhỏnh từ N.LLINK cú tớnh chất M.XVAL < N.XVAL, mỗi nỳt P trong cành rẽ nhỏnh từ N.RLINK cú tớnh chất P.XVAL N.XVAL.
2. Nếu N là nỳt trong cõy và level(N) là lẻ thỡ mỗi nỳt M trong cành rẽ nhỏnh từ N.LLINK cú tớnh chất M.YVAL < N.YVAL, mỗi nỳt P trong cành rẽ nhỏnh từ N.RLINK cú tớnh chất P.YVAL N.YVAL.
2.2.2. Chốn và tỡm kiếm trong cõy 2-d
Việc chốn nỳt N vào cõy do T trỏ tới được phỏt biểu phi hỡnh thức như sau:
Kiểm tra xem N và T cú thống nhất cỏc trường XVAL và YVAL hay khụng. Nếu thống nhất thỡ chỉ việc viết đố nỳt T và kết thỳc. Nếu khụng hóy rẽ trỏi nếu N.XVAL<T.XVAL hoặc rẽ phải trong trường hợp ngược lại. Giả sử P là nỳt con ta đang khảo sỏt. Nếu N và P thống nhất cỏc trường XVAL và YVAL thỡ chỉ cần viết đố P và kết thỳc, nếu khụng thỡ rẽ trỏi khi N.YVAL<P.YVAL hoặc rẽ phải trong trường hợp ngược lại. Lặp thủ tục này, hóy rẽ nhỏnh theo XVAL khi ta đang ở mức chẵn trong cõy, và theo YVAL khi ta đang ở mức lẻ.