1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng Cấu trúc dữ liệu và giải thuật: B-Cây - Đậu Ngọc Hà Dương

81 34 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 1,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Cấu trúc dữ liệu và giải thuật: B-Cây - Đậu Ngọc Hà Dương có nội dung trình bày về cây tìm kiếm m-nhánh, B-cây, các thao tác trên B-cây, cây B+, tập tin chỉ mục IDX trong FoxPro,... Mời các bạn cùng tham khảo!

Trang 1

C u trúc d  li u và gi i thu t ấ ữ ệ ả ậ

B-Cây

Trang 2

Nội dung trình bày

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ2

Trang 3

 m­way search tree

Cây tìm kiếm m-nhánh

3

Trang 4

 Các cây con đặt giữa hai giá trị khóa.

 Hai cây con nằm ở hai đầu của dãy khóa

 Mỗi khóa sẽ có cây con trái và cây con phải.

 Các giá trị của cây con trái sẽ nhỏ hơn giá trị của khóa.

 Các giá trị của cây con phải sẽ lớn hơn giá trị của khóa.

Trang 6

Thao tác trên cây

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ

6

 Tìm ki m ế

 Thêm ph n t ầ ử

 Xóa ph n t ầ ử

Trang 7

 Nếu X < v1 thì tìm X bên nhánh trái của v1.

 Ngược lại, nếu X > vk thì tìm X bên nhánh phải của vk.

 Nếu X = vi thì thông báo tìm thấy.

 Nếu vi < X < vi+1 thì tìm X tại cây con nằm giữa vi và vi+1.

Trang 8

 X là giá trị cần thêm vào cây.

 Duyệt cây tìm X trên cây.

 Nếu X đã tồn tại trên cây thì không thêm.

 Nếu X chưa tồn tại (tìm thấy node rỗng) thì

 Nếu node cha (của node rỗng tìm thấy) còn có thể thêm X vào thì thêm X vào node cha.

 Ngược lại, tạo node mới và thêm X vào node đó.

Trang 11

Xóa phần tử

11

 T ươ ng t  cây nh  phân tìm ki m ự ị ế

 Tìm vị trí của phần tử X cần xóa.

 Nếu X nằm giữa hai cây con rỗng thì xóa X.

 Nếu X có cây con, thay thế X bằng:

 Phần tử lớn nhất bên cây con trái của X hoặc

 Phần tử nhỏ nhất bên cây con phải của X

Trang 16

 B­tree

B-Cây

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ16

Trang 18

Ví dụ

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ

18

51 62 42

6 12

26

55 60 64 70 90 45

M t B­cây có b c là 5 ộ ậ

Trang 19

Ví dụ

19

51 62 42

6 12

26

55 60 64 70 90 45

Có ph i là B­cây?

Trang 20

Tính chất

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ

20

 G i đ  cao c a cây: h ọ ộ ủ

 S  khóa t i đa c a B­cây b c m:  ố ố ủ ậ m h 1 1

Trang 21

Thao tác trên cây

Trang 22

Khóa chính giữa được đưa lên node cha.

 Th c hi n t ự ệ ươ ng t  n u node cha b  tràn ự ế ị

 N u node g c b  tràn thì t o m t node g c m i  ế ố ị ạ ộ ố ớ (có 1 khóa duy nh t là khóa chính gi a c a  ấ ữ ủ

node cũ)

Trang 23

Thêm phần tử - Ví dụ

23

 T o B­cây b c 5 g m các ph n t  theo th  t   ạ ậ ồ ầ ử ứ ự sau: 

 1, 12, 8, 2, 25, 5, 14, 28, 17, 7, 52, 16, 48, 68, 3, 26,

29, 53, 55, 45

Trang 35

Xóa phần tử

35

 Th c hi n t ự ệ ươ ng t  cây tìm ki m m­nhánh ự ế

 Xét hai tr ườ ng h p: ợ

 Khóa thuộc node lá

 Khóa thuộc node trong

Trang 36

Xóa phần tử

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ

36

 Khóa thu c node lá: ộ

 Xóa khóa khỏi node chứa khóa.

 Sau khi xóa, nếu node chứa khóa mới xóa có số khóa

không đủ (ít hơn m/2 -1 khóa) thì:

 Mượn khóa từ node bên cạnh (Node bên cạnh dư khóa).

 Nhập khóa với node bên cạnh cùng với khóa cha (Node bên cạnh KHÔNG dư khóa).

Trang 37

Xóa phần tử

37

 Khóa thu c node trong: ộ

 Khóa bị xóa có các node bên nhánh con trái và nhánh

con phải có số khóa tối thiểu ( m/2 -1 khóa): nhập

khóa của 2 node con.

Ngược lại: tìm phần tử thế mạng và thực hiện cân

bằng lại cây như trường hợp xóa khóa thuộc node lá.

Trang 38

 TH1: Nếu node kề phải dư khóa

 Thêm khóa cha của 2 node vào node bị thiếu.

 Lấy khóa đầu của node kề phải lên thay cho khóa cha

ở node cha.

 TH2: Nếu node kề trái dư khóa: làm tương tự trường hợp trên

 TH3: Nếu cả node kề trái và phải đều không dư khóa:

 Tạo node mới chứa khóa của node bị thiếu, tất cả khóa của 1 node kề nó và khóa cha của 2 node này.

 Xóa khóa cha của 2 node ở node cha, và thay 2 node con vừa bị nhập bằng node mới tạo

Trang 50

Xóa phần tử - Ví dụ

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ

50

 Thêm vào các khóa sau trên B­cây b c 5 đã t o  ậ ạ (g m các khóa 3, 7, 9, 23, 45, 1, 5, 14, 25, 24,  ồ

13, 11, 8, 19, 4, 31, 35, 56):

 2, 6,12

 Sau đó, xóa b  các khóa sau: ỏ

 4, 5, 7, 3, 14

Trang 52

14 12

3

Trang 53

3 16

Trang 55

Ứng dụng

55

 Xây d ng c u trúc ch  m c trong các h  qu n  ự ấ ỉ ụ ệ ả

tr  c  s  d  li u ị ơ ở ữ ệ

Trang 56

 B+ Tree

Cây B+

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ56

Trang 58

Ví dụ

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ58

Trang 60

Các thao tác trên cây B+

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ

60

 Thao tác thêm, xóa ph n t : ầ ử

 Thực hiện gần giống B-cây.

 Lưu ý: các khóa nằm ở cây con phải có thể có giá trị

lớn hơn hoặc bằng khóa trên node cha tương ứng.

Trang 61

 T p tin ch  m c c a h  qu n tr  c  s  d   ậ ỉ ụ ủ ệ ả ị ơ ở ữ

li u FoxPro ệ

Tập tin chỉ mục IDX

61

Trang 63

Cấu trúc tập tin

Header file(512 byte)

Node 1Node 2

…Node N

 G m 2 ph n chính: ồ ầ

 Header

 Dữ liệu: tập hợp các node của cây B+

 Kích th ướ c:

 Header: 512 byte

 Node: 512 byte

63

Trang 64

Thông tin header

Header file(512 byte)

Node 1Node 2

…Node N

Trang 65

Cấu trúc node

Header file(512 byte)

Node 1Node 2

…Node N

65

00 – 01 Node attributes (any of the following 

numeric values or their sums):

0 – index node; 1 – root node; 2 – leaf node

If the node is a leaf (attribute = 02 or 03) 

Trang 67

Hỏi và Đáp

67

Trang 68

Chỉ mục

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ68

Trang 69

Giới thiệu

69

Trang 70

Giới thiệu

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ

70

Trang 72

 Khóa tìm kiếm: một (hay nhiều) thuộc tính, được dùng

để tìm kiếm các mẫu tin trong bảng dữ liệu

 Tham chiếu: con trỏ tham chiếu đến vị trí mẫu tin tương ứng với Khóa tìm kiếm

Trang 73

Tính chất của chỉ mục

73

 Kích th ướ c nh  h n nhi u so v i b ng d  li u ỏ ơ ề ớ ả ữ ệ

 Th c hi n tìm ki m nhanh ự ệ ế

 Cho phép ‘nhìn’ d  li u   nhi u góc đ  khác  ữ ệ ở ề ộ

nhau. (Tìm ki m trên nhi u khóa tìm ki m khác  ế ề ế nhau)

Trang 74

Các loại chỉ mục

C u trúc d  li u và gi i thu t – HCMUS 2010ấ ữ ệ ả ậ74

Trang 76

Tr n Phúầ 222 Tr n Đăng Oầ

Tr n Phúầ 305 Phan Qu nh Lỳ

Xô Vi t Ngh  Tĩnhế ệ 1234 Đ ng Th  Gặ ị

Trang 77

Tr n Phúầ 222 Tr n Đăng Oầ

Tr n Phúầ 305 Phan Qu nh Lỳ

Xô Vi t Ngh  Tĩnhế ệ 1234 Đ ng Th  Gặ ị

Trang 79

 Giả sử: dữ liệu có 100.000 bản ghi.

 Đánh chỉ mục thưa cho từng khối 10 bản ghi

⇒Tổng cộng có 10.000 phần tử chỉ mục

 Nếu kích thước chỉ mục không nằm thể nằm trọn

Trang 80

Tạo chỉ mục chính cho dữ liệu (lưu trên bộ nhớ phụ)

Tạo chỉ mục thưa trên chỉ mục chính vừa tạo.

 Chỉ mục thưa sẽ lưu trữ trên bộ nhớ chính.

 Nếu kích thước của chỉ mục thưa lớn thì có thể tạo thêm chỉ mục thưa trên đấy.

Trang 81

Chỉ mục nhiều tầng

81

Ch  m c th a t ng 1ỉ ụ ư ầ

Ngày đăng: 11/09/2021, 13:41

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm