... 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 ... 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 ... 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à...
... 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...
... 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á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 ...
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 ... như 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 ... Tp.HCM 47
Cây nhịphântìm kiếm
Vídụ
Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 48
Cây nhịphântìm kiếm
Môtảcấu trúc dữ liệu
! Cách lưu trữ cây BST giống...
... 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ạo câ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 ... chỉnh cây
Những trường hợp cây bị mất cân bằng và
Các cách điều chỉnh cây
Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 92
AVL Tree
Thao tác điều chỉnh cây
(a)(b)
Hai...
... 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 ... 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 ... 1
Click To Edit Master Title Style
8
Thêm một nỳt x
ã
Rng buc: Sau khi thờm cõy m bo l câynhị
phân tìm kiếm.
int insertNode(TREE &T, Data X)
{ if(T)
{ if(T->Key == X) return 0;
if(T->Key...
... 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ân có 3 nút ?
Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 30
Tổng quan vềcâynhịphân
Cách thức lưu trữ cây
! Có 2 cách tổ chức câynhị phân:
! ... quan vềcâynhị phân
Định nghĩa
! Câynhịphân là cây có bậc = 2
*
0
/
a
b
c
d
Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 28
Tổng quan vềcâynhị phân
Định ... tree[N];// câynhịphân có N nút
15
Spring 2004Data Structure & Algorithm -Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 29
Tổng quan vềcâynhị phân
Định nghĩa
! Trắc nghiệm: Hãy vẽ tất cả các cây nhị...
... câynhịphân 10
3. Biểu diễn câynhịphân 10
4. Duyệt câynhịphân 10
5. Cài đặt câynhịphân 11
IV. Câytìmkiếmnhịphân (Binary Search Trees) 13
1. Định nghĩa 13
2. Cài đặt câytìmkiếm ... kiếmnhịphân 14
V. Câynhịphântìmkiếm cân bằng (Cây AVL) 22
1. Câynhịphân cân bằng hoàn toàn 22
2. Xây d
ựng câynhịphân cân bằng hoàn toàn 22
3. Câytìmkiếmnhịphân cân bằng (cây ... nếu cây TKNP được tổ chức
tốt, nghĩa là cây t
ương đối "cân bằng".
Thêm một nút có khóa cho trước vào cây TKNP
Theo định nghĩa câytìmkiếmnhịphân ta thấy trên câytìmkiếmnhị phân...
... lực
3. Tìmkiếm sự thông hiểu
4. Tìmkiếm sự nhất trí
5. Khi sự nhất trí còn bị nghi ngờ, hãy quay lại bước 1 và bắt đầu lại quy trình.
* Hãy trao đổi với cấp dưới về những cách hành ... bao giờ có đủ thời gian trong ngày. Cách duy nhất
để công việc của cô và của phòng cô được thực hiện đúng thời hạn là biết cách
phân nhiệm hiệu quả. Việc phân nhiệm cũng đảm bảo năng lực cấp ... dưới trình bày, và hãy tìmkiếm những cảm xúc
ẩn đằng sau những lời nói đó.
* Nếu cấp dưới không đạt được mục tiêu của mình, hãy chuyển cuộc thảo luận
sang phầntìmkiếm nguyên nhân. Trong...
... liên kết của câynhịphân
Chúng ta hãy xem xét cách biểu diễn của các nút để xây dựng nên cây.
9.2.3.1. Cấu trúc cơ bản cho một nút trong câynhịphân
Mỗi nút của một câynhịphân (cũng là ... 31 ta có một câynhịphân gần như đầy đủ.
9.2.2. Duyệt câynhịphân
Một trong các tác vụ quan trọng nhất được thực hiện trên câynhịphân là
duyệt cây (traversal). Một phép duyệt cây là một ... 9 – Câynhịphân
Giáo trình Cấu trúc Dữ liệu và Giải thuật
193
Trong phần sau chúng ta sẽ tìm hiểu các câynhịphân với đặc tính trên,
chúng còn được gọi là các câynhịphântìmkiếm (binary...