1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng cấu trúc dữ liệu và giải thuật chương 4 ths nguyễn thị khiêm hòa

55 250 1

Đ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 55
Dung lượng 879,21 KB

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

Nội dung

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 21 Tổ chức lưu trữ cây nhị phân  Sử dụng mảng một chiều lưu trữ kế tiếp  Đánh số thứ tự từ gốc, tại mỗi mức, đánh số các nút từ tr

Trang 1

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Chương 4:

Cây

Gi ả ng viên: Ths Nguyễn Thị Khiêm Hòa

Trang 2

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 3

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

3

Mục tiêu

 Trang bị khái niệm và ứng dụng trên Cây

 Cài đặt các thuật toán trên cây, đặc biệt là cây nhị phân

tìm kiếm

Trang 4

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 5

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 6

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 7

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 8

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

8

Biểu diễn cây

 Bằng danh sách (các dấu ngoặc lồng nhau)

Trang 9

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 10

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

M

D A

Trang 11

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 12

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 13

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

13

Các thuật ngữ

 Tổ tiên (ancestors) của một nút

 Con cháu (Descendant) của một nút:

 Các con của cùng một cha gọi là anh em ruột (siblings)

Trang 14

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

14

Cây có thứ tự và Rừng

 Cây có thứ tự (ordered tree)

 Một cây gọi là có thứ tự khi ta thay đổi vị trí của các

cây con, ta nhận được một cây mới

 Rừng (forest)

 Tập hợp hữu hạn các cây phân biệt

 Nếu bỏ đi nút gốc của một cây, ta sẽ thu được một

rừng gồm nhiều cây phân biệt

Trang 15

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 16

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

16

Cây nhị phân

 Cây nhị phân biểu diễn biểu thức toán học

Trang 17

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

17

Tính chất của cây nhị phân

 Số nút tối đa mức i trong cây 2i-1

 Số nút tối đa trong cây là 2h-1 (h chiều cao của cây)

 Chiều cao của cây h  log2N (N là số nút trong cây)

Trang 18

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Các nút ứng với các mức trừ mức cuối đều đạt tối đa,

ở mức cuối, các nút đều đạt về phía trái

Trang 19

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 20

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Các nút ứng với các mức trừ mức cuối đều đạt tối đa,

ở mức cuối, các nút không dạt đều về phía trái

Trang 21

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

21

Tổ chức lưu trữ cây nhị phân

 Sử dụng mảng một chiều (lưu trữ kế tiếp)

 Đánh số thứ tự từ gốc, tại mỗi mức, đánh số các nút

từ trái sang phải, từ mức thấp đến mức cao

 Sử dụng liên kết

 Quản lý cây thông qua nút gốc (root)

 Mỗi nút cấp phát động, bao gồm dữ liệu và địa chỉ hai

cây con pLeft, pRight, liên kết tới cây con trái và cây

con phải

 Nút lá có hai liên kết trái phải đều rỗng

Trang 22

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

22

Lưu trữ kế tiếp cây nhị phân

Con của nút thứ i là nút thứ 2i+1 và 2i+2

Trang 23

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 24

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

 Địa chỉ 2 cây con pLeft, pRight liên kết đến nút con

trái và nút con phải

Trang 25

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

private Node<T> left;

private Node<T> right;

public Node(T data)

Trang 26

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

get{ return this.data;}

set{ this.data = value;}

Trang 27

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 28

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 29

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

29

Phép duyệt cây nhị phân (Binary Tree Traversing)

 Định nghĩa

 Là phép xử lý các nút trên cây, mỗi nút một lần

 Duyệt cây theo thứ tự trước (preorder)

 Duyệt cây theo thứ tự giữa (inorder)

 Duyệt cây theo thứ tự sau (postorder)

Trang 30

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

30

Phép duyệt cây nhị phân (Binary Tree Traversing)

 Duyệt cây theo thứ tự trước (NLR)- Đệ qui

 Thăm gốc

 Duyệt cây con trái theo thứ tự trước

 Duyệt cây con phải theo thứ tự trước

Trang 31

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 32

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

32

Phép duyệt cây nhị phân (Binary Tree Traversing)

 Duyệt cây theo thứ tự giữa (LNR)- Đệ qui

 Duyệt cây con trái theo thứ tự giữa

Trang 33

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 34

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

34

Phép duyệt cây nhị phân (Binary Tree Traversing)

 Duyệt cây theo thứ tự sau (LRN)- Đệ qui

 Duyệt cây con trái theo thứ tự sau

 Duyệt cây con phải theo thứ tự sau

Trang 35

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 36

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 37

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 38

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 39

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 40

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

40

Xóa một nút trên cây nhị phân tìm kiếm

 Xóa một nút trên cây nhị phân tìm kiếm, có ba

trường hợp:

 Nút cần xóa là nút lá

 Nút cần xóa chỉ có 1 con (trái hoặc phải)

 Nút cần xóa có đủ cả 2 con

Trang 41

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 42

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

42

Xóa một nút trên cây nhị phân tìm kiếm

 Trường hợp 2: Nút cần xóa có một cây con trái

Trang 43

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

43

Xóa một nút trên cây nhị phân tìm kiếm

 Trường hợp 2: Nút cần xóa có một cây con phải

Trang 44

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

44

Xóa một nút trên cây nhị phân tìm kiếm

 Trường hợp 3 : Nút cần xóa có hai cây con trái và phải

Trang 45

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

 Biểu diễn cây m phân bằng liên kết động

 Mỗi nút có m+1 trường, với m mối nối

 Với cây m phân đầy đủ, có n(m-1)+1 mối liên kết NULL

Cây m phân đầy đủ có chiều cao log m N (N:số nút)

Trang 46

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

46

Cây M phân

 Phép duyệt cây tổng quát LNR(T)

 Nếu T rỗng, dừng

 Ngược lại, T1,…,Tn là cây con gốc T

 LNR(T1), T1 cây con thứ nhất của gốc T

 Thăm gốc của T

 Duyệt cây con T2,…,Tn của T theo thứ tự

giữa

Trang 47

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

47

Cây M_phân

 Phép duyệt cây tổng quát LRN(T)

 Nếu T rỗng, dừng

 Ngược lại, T1,…,Tn là cây con gốc T

 LNR(T1), T1 cây con thứ nhất của gốc T

 Duyệt cây con T2,…,Tn của T theo thứ tự giữa

 Thăm gốc của T

Trang 48

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

48

Cây M_phân

 Duyệt cây theo mức

 Duyệt cây theo chiều rộng

Trang 49

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

49

Cây M_phân tìm kiếm

 Tương tự cây nhị phân tìm kiếm trong đó mỗi nút có thể

có m nút con

 M càng lớn thì bậc của cây càng thấp

 Cây m phân tìm kiếm cân bằng: B_cây

Trang 50

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

Trang 51

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

51

B_Cây_Ứng dụng

 Hạn chế số thao tác đọc mỗi lần tìm kiếm

trên cây  Thích hợp cho việc tìm kiếm

trên bộ nhớ ngoài

Chiều cao cây = log M N chiều cao cây

giảm rất nhanh

Trang 52

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

52

B Cây_Tìm kiếm

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

Trang 53

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

53

B Cây_Thêm nút vào cây

 Ý tưởng: Tìm vị trí thích hợp để thêm vào cây Nút thêm vào sẽ là

nút lá

 Nếu nút lá chưa đầy  thêm vào

 Nếu đầy: phân đôi nút lá

 Chuyển phần tử giữa lên nút cha

 Hai bên của nút lá thành hai nhánh con

 Việc phân đôi có thể lan truyền

Trang 54

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

54

B Cây_Thêm nút vào cây

 Thực hiện thêm các nút sau vào B_cây bậc 5:

1 12 8 2 25 5 14 28 17 7 52 16 48 68

3 26 29 53 55 45

Kết quả:

Trang 55

Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM

55

Q&A

Ngày đăng: 03/12/2015, 02:15

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