... TNODE *TREE;
3. CÂYNHỊPHÂNTÌM KIẾM
3.1. Định nghĩa:
Cây nhịphântìmkiếm (CNPTK) là câynhịphân trong đó tại mỗi nút,
khóa của nút đang xét lớn hơn khóa của tất cả các nút thuộc cây con trái ...
Cây nhịphân tương ứng sẽ như sau:
2.6. Một cách biểu diễn câynhịphân khác
Đôi khi, trên câynhị phân, người ta quan tâm đến cả quan hệ chiều
cha con. Khi đó, cấu trúc câynhịphân ... Bài 4:CÂY, CÂYNHỊ PHÂN, CÂYNHỊPHÂNTÌM KIẾM
1. Cấu trúc cây
1.1. Định nghĩa 1:
Cây là một tập hợp T các phần tử (nút trên cây) trong đó có 1 nút đặc
biệt T0...
... Câytìmkiếmnhịphân
Cây tìmkiếmnhịphân (viết tắt tiếng Anh: BST - Binary Search Tree) là một cấu
trúc dữ liệu rất thuận lợi cho bài toán tìm kiếm.
Định nghĩa
Cây tìmkiếmnhịphân
Cây tìm ... trúc Câynhịphântìmkiếm còn được ứng dụng trong
việc tra từ điển.
Dưới đây là một vài giới thiệu về Cây và Câynhịphântìm kiếm.
A. Cây
Ví dụ về một câynhị phân
Trong khoa học máy tính, cây ... sách các nút biểu diễn một cây tổng quát, khi
được xem là biểu diễn của câynhịphân sẽ cho một câynhị phân. Câynhịphân này được
gọi là câynhịphân tương đương với cây tổng quát ban đầu.
5
...
...
- Duyệt câynhịphântìm kiếm: để có thể đi được hết các phần tử trên câynhịphântìm kiếm:
duyệt trước (NLR), duyệt giữa (LNR), duyệt sau (LRN). Do tính chất của câynhịphântìm
kiếm, phép ... vào tính chất của câynhịphântìmkiếm để tìm vị trí thêm nút mới.
o Tạo cây: từ cây rỗng, lần lượt thêm các nút vào cây bằng phương thức thêm nút vào
cây nhịphântìmkiếm
- Xóa 1 nút: là ... nguyên trên câynhịphântìmkiếm gồm các giá trị nguyên.
Gợi ý: dựa vào tính chất 1, 2 của câynhịphântìm kiếm.
3. Bổ sung chương trình mẫu cho phép tính số lượng các nút của câynhịphân gồm...
... Câynhịphântìmkiếm 4
a. Định nghĩa và tính chất 4
b.Giải thuật tìmkiếm 5
c. Giải thuật bổ sung 5
d. Giải thuật loại bỏ 6
f. Phân tích đánh giá 6
II. CÂYNHỊPHÂN CÂN BẰNG 6
2.1. Câynhịphân ... log2(n).
II. CÂYNHỊPHÂN CÂN BẰNG
2.1. Câynhịphân cân bằng hoàn toàn (CCBHT)
a. Định nghĩa:
Cây cân bằng hoàn toàn là câynhịphântìmkiếm mà tại mỗi nút của nó, số nút của
cây con trái ... hoàn toàn là cây AVL, nhưng cây AVL chưa chắc đã là cây cân bằng
hoàn toàn. Tính cân đối của cây AVL nhẹ hơn so với tính cân đối của câynhịphân cân bằng
hoàn toàn.
Cây nhịphântìmkiếm mà luôn...
... nhị phân
A
B
C
D
E
a) câynhiphân
lệch trái
a
A
B
C
D
E
b) Câynhị phân
lệch phải
b
A
C
B
D
E
D
A
B
C
E
d
c
c, d) Câynhịphân
Cây zic- zắc
I.ĐỊNH NGHĨA
Cây nhịphân là cây có các nút đã được ... cây con còn lại (theo thứ tự
trước)
Một số dạng đặc biệt của câynhịphân
(tiếp)
Cây nhịphân gần đầy
A
C
G
H
B
E
J
D
F
I
A
C
G
B
E
J
D
F
H
I
Cây nhịphân hoàn
chỉnh
A
C
G
B
E
D
F
Cây nhị ...
Duyetgoc(T^.Node);
T_T_truoc(T^.Left);
T_T_truoc(T^.Right);
End;
End;
IV.MỘT SỐ THAO TÁC TRÊN
CÂY NHỊ PHÂN
1.Trả ra một phần tử có khoá đã biết.
2.Chèn một phần tử vào câynhị phân
3.Xoá một phần tử khỏi câynhị phân
Khai báo cây (Dùng danh sách móc nối)
Type
Item_Type=Record
Key:...
... - Khoa CNTT ĐH KHTN Tp.HCM 45
Cây nhịphântìm kiếm
Định nghĩa
! Câynhịphântìmkiếm là:
! Một câynhị phân
! Mỗi nút p của cây đều thỏa:
! Tất cả các nút thuộc cây con trái (p->pLeft) đều ... câynhị
phân
! Xem lại phần “Tổng quan về câynhịphân
-Cách thức lưu trữ cây
27
Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 53
Cây nhịphântìm kiếm
Xây ... Khoa CNTT ĐH KHTN Tp.HCM 49
Cây nhịphântìm kiếm
Xây dựng các thao tác cơ bản trên cây
! Các thao tác trên cây BST:
! Tạo lập cây rỗng
! Kiểm tra cây rỗng
! Tìmkiếm 1 phần tử
! Thêm 1 phần...
... CNTT ĐH KHTN Tp.HCM 77
Cây nhịphântìmkiếm cân bằng
(AVL Tree)
! Vì sao phải cân bằng ?
! Định nghĩa
! Ví dụ
! Mô tả cấu trúc dữ liệu
! Thao tác điều chỉnh cây
! Ví dụ tạocây
! Các đánh giá
Spring ... Bal = -1: nút lệch trái (cây con trái cao hơn
cây con phải)
! Bal = 0: nút cân bằng (cây con trái cao bằng
cây con phải)
! Bal = +1: nút lệch phải (cây con phải cao hơn
cây con trái)
45
Spring ... tạo cây
! Tạocây AVL với các khóa lần lượt là:
30, 20, 10,…
10
20
30
LR
10
20
30
30
Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 102
AVL Tree
Ví dụ tạo...
... tác trên câynhịphântìm kiếm
Tạo 1 cây rỗng
Tạo 1 nút có trường Key bằng x
Thêm 1 nút vào câynhịphântìm kiếm
Xoá 1 nút có Key bằng x trên cây
Tìm 1 nút có khoá bằng x trên cây
Cấu ... Style
1
NỘI DUNG
CÂY NHỊPHÂNTÌM KIẾM
Cấu trúc dữ liệu và thuật giải
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1
Click To Edit Master Title Style
2
Ðịnh nghĩa câynhịphântìm kiếm
•
Cây nhịphân
•
Bảo đảm ... X trên cây
Hủy 1 phần tử trên cây phải đảm bảo điều kiện ràng
buộc của Câynhịphântìm kiếm
Có 3 trường hợp khi hủy 1 nút trên cây
TH1: X là nút lá
TH2: X chỉ có 1 cây con (cây con...
... hủy bên trái
Cân bằng lại cây : tìmcách bố trí lại cây sao cho
chiều cao 2 cây con cân đối:
Kéo nhánh cao bù cho nhánh thấp
Phải bảo đảm cây vẫn là Nhịphântìm kiếm
Cấu trúc dữ liệu và ... Style
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1
2
Ðịnh nghĩa
Cây nhịphântìmkiếm cân bằng là cây mà tại mỗi nút
của nó độ cao của cây con trái và của cây con phải
chênh lệch không quá một
Ví dụ:
44
23
88
13 ... độ lệch giữa cây trái và cây
phải của một nút
Các giá trị hợp lệ :
CSCB(p) = 0 ⇔ Độ cao cây trái (p) = Độ cao cây
phải (p)
CSCB(p) = 1 ⇔ Độ cao cây trái (p) < Độ cao cây
phải (p)
CSCB(p)...
... nhịphântìm kiếm
Tạo 1 cây rỗng
Tạo 1 nút có trường Key bằng x
Thêm 1 nút vào câynhịphântìm kiếm
Xoá 1 nút có Key bằng x trên cây
Tìm 1 nút có khoá bằng x trên cây
Cấu trúc dữ liệu ... Title Style
2
Ðịnh nghĩa câynhịphântìm kiếm
•
Cây nhịphân
•
Bảo đảm nguyên tắc bố trí khoá tại mỗi nút:
–
Các nút trong cây trái nhỏ hơn nút hiện hành
–
Các nút trong cây phải lớn hơn nút hiện ... X trên cây
Hủy 1 phần tử trên cây phải đảm bảo điều kiện ràng
buộc của Câynhịphântìm kiếm
Có 3 trường hợp khi hủy 1 nút trên cây
TH1: X là nút lá
TH2: X chỉ có 1 cây con (cây con...
... hủy bên trái
Cân bằng lại cây : tìmcách bố trí lại cây sao cho
chiều cao 2 cây con cân đối:
Kéo nhánh cao bù cho nhánh thấp
Phải bảo đảm cây vẫn là Nhịphântìm kiếm
Cấu trúc dữ liệu và ... DUNG
CÂY NHỊPHÂNTÌMKIẾM CÂN BẰNG
Cấu trúc dữ liệu và thuật giải
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1
Click To Edit Master Title Style
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1
2
Ðịnh nghĩa
Cây nhịphântìm ... độ lệch giữa cây trái và cây
phải của một nút
Các giá trị hợp lệ :
CSCB(p) = 0 ⇔ Độ cao cây trái (p) = Độ cao cây
phải (p)
CSCB(p) = 1 ⇔ Độ cao cây trái (p) < Độ cao cây
phải (p)
CSCB(p)...
... tác trên câynhịphântìm kiếm
Tạo 1 cây rỗng
Tạo 1 nút có trường Key bằng x
Thêm 1 nút vào câynhịphântìm kiếm
Xoá 1 nút có Key bằng x trên cây
Tìm 1 nút có khoá bằng x trên cây
Generated ... Title Style
2
Ðịnh nghĩa câynhịphântìm kiếm
• Câynhị phân
• Bảo đảm nguyên tắc bố trí khoá tại mỗi nút:
– Các nút trong cây trái nhỏ hơn nút hiện hành
– Các nút trong cây phải lớn hơn nút hiện ... X trên cây
Hủy 1 phần tử trên cây phải đảm bảo điều kiện
ràng buộc của Câynhịphântìm kiếm
Có 3 trường hợp khi hủy 1 nút trên cây
TH1: X là nút lá
TH2: X chỉ có 1 cây con (
cây con...