2010-04-02 29 views
7

Làm cây b và cây b + chỉ lưu trữ dữ liệu ở lá của chúng? Tôi giả định rằng họ sử dụng các nút nội bộ của họ để tìm kiếm dữ liệu cần thiết.Do btrees và b + trees chỉ lưu trữ dữ liệu ở các lá?

Đó có phải là trường hợp hoặc chúng lưu trữ dữ liệu trong mỗi nút không?

+0

B + cây chỉ lưu trữ dữ liệu trong lá. B-cây có thể lưu trữ dữ liệu trong các nút bên trong. –

Trả lời

7

Non-lá nút "Hồ sơ" chứa

  • một con trỏ (một nút "địa chỉ" của các loại) vào một nút trong một tầm cao mới xuống cây
  • giá trị của khóa đầu tiên (hoặc người cuối cùng, tùy thuộc vào việc thực hiện) ghi lại trong nút đó

Các bản ghi không phải lá đó được liệt kê theo thứ tự khóa. nút ở cấp độ tiếp theo xuống có thể con tain giá trị tìm kiếm.

Bản ghi nút lá chứa bản ghi dữ liệu hoàn chỉnh: giá trị khóa và bất kỳ giá trị nào khác.

Do đó Dữ liệu "thực" chỉ được chứa trong các nút lá, các nút không phải lá chỉ chứa [một bản sao của] các giá trị khóa. cho một tỷ lệ rất nhỏ dữ liệu (tỷ lệ này phụ thuộc vào số lượng bản ghi dữ liệu trung bình được tìm thấy trong một nút lá).

này được minh họa trong hình dưới đây từ Wikipedia article on B+ Trees simple btree

Nút lá không, ở phía trên, (người duy nhất trong cây đơn giản này) chỉ chứa hai kỷ lục nút lá không, đều có một bản sao của một giá trị khóa (màu hơi xanh) và một con trỏ đến nút tương ứng (màu xám). Cây này xảy ra chỉ có hai cấp độ, do đó các "bản ghi" trong điểm nút gốc đến các nút lá. Người ta có thể tưởng tượng rằng có các cấp bổ sung (phía trên cây trên cùng bên dưới được hiển thị bên dưới, gọi nó là "nút 3-5"); nếu đó là trường hợp nút ở trên sẽ chứa (cùng với các bản ghi tương tự khác), bản ghi có giá trị khóa 3 có con trỏ đến nút "3-5".
Cũng lưu ý rằng chỉ các giá trị khóa 3 và 5 được chứa trong các nút không phải lá (tức là không tất cả các giá trị khóa được sao chép trong các nút không phải lá).
BTW trong ví dụ này các nút không phải lá có khóa của bản ghi cuối cùng trong nút tiếp theo (cũng sẽ hoạt động nếu bản ghi đầu tiên được sử dụng thay thế, sự khác biệt nhỏ trong cách thực hiện logic tìm kiếm) .

Các nút lá chứa giá trị khóa (cũng có màu hơi xanh) và bản ghi dữ liệu tương ứng (d1, d2 ... hiển thị bằng màu xám). Con trỏ màu đỏ-ish được hiển thị ở cuối mỗi điểm nút lá đến nút lá kế tiếp, tức là con trỏ chứa bản ghi dữ liệu tiếp theo trong thứ tự khóa; những con trỏ này rất hữu ích để "quét" một loạt các bản ghi dữ liệu.

+0

xóa mọi khái niệm về cây b + ...! cảm ơn rất nhiều – rohit

0

Có một số nhầm lẫn về cây BT và cây B +. B + Cây chỉ lưu trữ dữ liệu trên các nút lá dưới dạng con trỏ. Điều này có nghĩa là dữ liệu phải được lưu trữ ở nơi khác. BTrees có thể lưu trữ dữ liệu trên mỗi nút. Có lợi thế và bất lợi cho mỗi. Tôi đã nhận thấy rằng một số trang web hiển thị BTrees chính xác giống như B + Cây.Nói chung, BTrees là tốt hơn trong việc giữ dữ liệu thực tế, và B + Cây là hiệu quả hơn nhiều như chỉ mục.

Các vấn đề liên quan