1. Trang chủ
  2. » Tất cả

Cấu trúc dữ liệu và thuật toán chapter05 adt tree

72 5 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

Tiêu đề Cấu trúc dữ liệu và thuật toán chapter05 adt tree
Tác giả Bùi Tiến Lên
Người hướng dẫn Ông Lên
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Cấu trúc dữ liệu và thuật toán
Thể loại Giáo trình
Năm xuất bản 2017
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 72
Dung lượng 0,92 MB

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

Nội dung

CẤU TRÚC DỮ LIỆU CÂY Bùi Tiến Lên 01/01/2017 GIỚI THIỆU CÂY Ứng dụng của kiểu dữ liệu cây Kiểu dữ liệu cây thể hiện tính “phân cấp”, “kế thừa” Do đó có thể biểu diễn được những cấu trúc như I Cây gia[.]

Trang 1

CẤU TRÚC DỮ LIỆU

CÂY

Bùi Tiến Lên

01/01/2017

Trang 2

GIỚI THIỆU CÂY

Trang 3

Ứng dụng của kiểu dữ liệu cây

Kiểu dữ liệu cây thể hiện tính “phân cấp”, “kế thừa” Do đó có thểbiểu diễn được những cấu trúc như

Trang 4

Ứng dụng của kiểu dữ liệu cây (cont.)

Trái đất

Hình 1: Quản lý hành chính toàn cầu

Trang 5

Ứng dụng của kiểu dữ liệu cây (cont.)

dưới đây dùng để biểu diễn biểu thức

Trang 6

Ứng dụng của kiểu dữ liệu cây (cont.)

diễn cấu trúc ngữ pháp của một câu Ví dụ sau đây dùng để

biểu diễn câu ”the cat sat on the mat”

S

VP

PP NP N mat

Det the

P on

V sat

NP N cat

Det

the

Hình 3:Cây ngữ pháp

Trang 7

Ứng dụng của kiểu dữ liệu cây (cont.)

Hình 4:Cây html

Trang 8

Ứng dụng của kiểu dữ liệu cây (cont.)

Hình 5: BTree

Trang 9

Kiểu dữ liệu cây

Trang 10

Kiểu dữ liệu cây (cont.)

r

Hình 6:Cây trong tin học

Trang 11

Các thuật ngữ liên quan đến cây

I Nút (node): là những phần tử trong cây

Trang 12

Các thuật ngữ liên quan đến cây (cont.)

I Nhánh (branch): là cạnh mũi tên nối giữa hai nút trong cây

I Nút cha (parent node) và nút con (child node) là hai quan

hệ được định nghĩa trên một cạnh, nút cha là nút đầu cạnh vànút con là nút cuối cạnh

Trang 13

Các thuật ngữ liên quan đến cây (cont.)

I Cây con (subtree)

Trang 14

Các thuật ngữ liên quan đến cây (cont.)

Trang 15

Các thuật ngữ liên quan đến cây (cont.)

I Bậc của nút (node degree): là tổng số nút con của nút này

Trang 16

Các thuật ngữ liên quan đến cây (cont.)

I Bậc của cây (tree degree): là bậc lớn nhất của các nút củacây

Trang 17

Các thuật ngữ liên quan đến cây (cont.)

I Mức của nút (node level):

level (p) = level (parent (p)) + 1 p 6= root0 p = root (2)

Trang 18

Các thuật ngữ liên quan đến cây (cont.)

I Chiều cao của cây (tree height):

height (T) = max (level (p i) + 1,p iT) (3)

Trang 19

Các thuật ngữ liên quan đến cây (cont.)

I Đường đi (path): là một chuỗi các nút khác nhau

{p1,p2, ,p k} sao cho giữa p i,p i+1 có cạnh giữa chúng Nút

Hình 15: Dãy {A, E, H, I} là đường đi, dãy {A, E, C} không phải

là đường đi Nút A là tổ tiến của I, và I la con cháu của A

Trang 20

Các thuật ngữ liên quan đến cây (cont.)

Trang 21

Phân loại cây

Định nghĩa 2

I Cây tuyến tính (linear tree): là cây có bậc bằng 1

I Cây nhị phân (binary tree): là cây có bậc bằng 2

I Cây tam phân (ternary tree): là cây có bậc bằng 3

I Cây n-nhánh (n-ary tree ): là cây có bậc bằng n

Hình 16: Các loại cây

Trang 22

Một số loại cây nhị phân

Định nghĩa 3

Một số cây nhị phân đặc biệt

I Cây nhị phân đầy đủ (full binary tree): là cây mà mỗi nút có

Trang 23

Một số loại cây nhị phân (cont.)

Hình dưới minh họa cây đầy đủ và cây hoàn chỉnh

Hình 17:Các loại cây đầy đủ và hoàn chỉnh

Trang 24

4. Nếu T là một cây nhị phân có n nút thì chiều cao nhỏ nhất

có thể của cây là là log2(n + 1)

Trang 25

Các định lý về cây nhị phân (cont.)

Định lý 2

Cho T là một cây nhị phân đầy đủ l là số nút lá và i là số nút nội

Trang 26

Cấu trúc dữ liệu biểu diễn cây

AB

D

CEG

F

H I

Hình 18:Biểu diễn vẽ cho một cây nhị phân

Trang 27

Cấu trúc dữ liệu biểu diễn cây (cont.)

Biểu diễn cây bằng mảng

Bảng 1:Biểu diễn mảng cho cây nhị phân

Chỉ số Nút Con trái Con phải

Trang 28

Cấu trúc dữ liệu biểu diễn cây (cont.)

Trang 29

Cấu trúc dữ liệu biểu diễn cây (cont.)

Chương trình 2: cấu trúc dữ liệu cây nhị phân

Trang 30

Duyệt cây nhị phân

Đối với cây ta có các kỹ thuật duyệt cây như sau

trước (N), sau đó duyệt cây con trái (L), cuối cùng duyệt câycon phải (R)

Trang 31

Duyệt cây nhị phân (cont.)

Trang 32

Duyệt cây nhị phân (cont.)

a b

d h

e i

c f

g l

Hình 20: Duyệt cây bằng 3 cách NLR, LNR, LRN

Trang 33

Duyệt cây nhị phân (cont.)

Chương trình 3: Duyệt cây NLR

Trang 35

Cây n-nhánh (cont.)

Hình 21: Cây n-nhánh

Trang 37

Cây n-nhánh (cont.)

Hình 22:Cây n-nhánh: mũi tên màu xanh trỏ đến con cả, mũi tên màu

đỏ trỏ đến em kế tiếp

Trang 38

Cây n-nhánh (cont.)

Trang 39

CÂY NHỊ PHÂN TÌM KIẾM

Trang 40

Cây nhị phân tìm kiếm

q ∈ (p → left) : q → key < p → key

khóa của p

q ∈ (p → right) : q → key > p → key

Trang 41

Cây nhị phân tìm kiếm (cont.)

15 6

3

7 13 9

18

17 19

Hình 24:Cây nhị phân tìm kiếm

Trang 42

Cây nhị phân tìm kiếm (cont.)

Chương trình 4: Cấu trúc dữ liệu nút

Trang 43

Cây nhị phân tìm kiếm (cont.)

Trong nhiều tình huống, người lập trình có thể bổ sung thêmthông tin nút cha

Chương trình 5: Cấu trúc dữ liệu nút

Trang 44

Cây nhị phân tìm kiếm (cont.)

Chương trình 6:Cấu trúc dữ liệu cây nhị phân tìm kiếm

8 BSTNode <T> *search( int key);

9 bool insert( int key, T data);

10 bool remove( int key);

11 };

Trang 45

Tìm kiếm trên cây nhị phân tìm kiếm

Chương trình 7: Tìm kiếm khóa trên cây nhị phân tìm kiếm

1 BSTNode <T>* search( int key)

Trang 46

Minh họa tìm kiếm trên cây nhị phân tìm kiếm

Trang 47

Minh họa tìm kiếm trên cây nhị phân tìm kiếm

Trang 48

Minh họa tìm kiếm trên cây nhị phân tìm kiếm

Trang 49

Minh họa tìm kiếm trên cây nhị phân tìm kiếm

Trang 50

Minh họa tìm kiếm trên cây nhị phân tìm kiếm

Trang 51

Thêm một nút vào cây nhị phân tìm kiếm

Ý tưởng

Cho một cây T và một nút có khóa là key

cần thêm vào

Trang 52

Thêm một nút vào cây nhị phân tìm kiếm (cont.)

Thêm khóa key và data vào cây nhị phân tìm kiếm

1 void insert( int key, T data)

Trang 53

Thêm một nút vào cây nhị phân tìm kiếm (cont.)

Trang 54

Minh họa thêm nút

Trang 55

Minh họa thêm nút (cont.)

4

Hình 26: Thêm 4

Trang 56

Minh họa thêm nút (cont.)

4 3

Hình 27: Thêm 3

Trang 57

Minh họa thêm nút (cont.)

4

Hình 28: Thêm 5

Trang 58

Minh họa thêm nút (cont.)

4 3 1

5

Hình 29: Thêm 1

Trang 59

Minh họa thêm nút (cont.)

4 3 1 2 5

Hình 30: Thêm 2

Trang 60

Minh họa thêm nút (cont.)

4 3 1 2

5 7

Hình 31: Thêm 7

Trang 61

Minh họa thêm nút (cont.)

4 3 1 2

5 7 9

Hình 32: Thêm 9

Trang 62

Minh họa thêm nút (cont.)

4 3 1 2

5 7 9 8

Hình 33: Thêm 8

Trang 63

Xóa một nút khỏi cây nhị phân tìm kiếm

Các trường hợp

Có hai trường hợp xóa một nút của cây nhị phân tìm kiếm

Trang 64

Minh họa xóa một nút lá

15 6

3

7 13 9

18

17 19

(a)cây trước khi xóa

15 6

3 2

7 13 9

18

17 19

(b)cây sau khi xóa

Hình 34: Xóa nút 4 khỏi cây

Trang 65

Minh họa xóa một nút không phải lá

15 6

3

7 13 9

18

17 19

Hình 35: Hãy xóa nút 15 của cây

Trang 66

Minh họa xóa một nút không phải lá (cont.)

6 3

7 13 9

18

17 19

Hình 36: Xóa nút 15

Trang 67

Minh họa xóa một nút không phải lá (cont.)

13 6

Trang 68

Minh họa xóa một nút không phải lá (cont.)

13 6

3

7 9

18

17 19

Hình 38: Phần tử 9 thế chỗ 13

Trang 69

Minh họa xóa một nút không phải lá (cont.)

13 6

3

7 9

18

17 19

Hình 39:Xóa nút lá

Trang 71

Đánh giá về cây nhị phân tìm kiếm

Phân tích chi phí thực hiện theo h (chiều cao của cây)

Trang 72

Tài liệu tham khảo

Ngày đăng: 25/03/2023, 07:20

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN