... 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...
... 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ạ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 ... cân bằng ?
! Cây AVL là 1 dạng cây BST cân bằng
! Cấu trúc cây AVL do 3 tác giả: Adelson,
Velskii, Landis đề xuất năm 1962
! Đây là mô hình cây cân bằng động đầu tiên
được đề xuất
! Cây AVL không...
...
Hãy dùng bước này để làm rõ những quan sát ban đầu của bạn về vấn đề năng 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 ... 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 ... 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 của cô
được sử dụng tối đa.
Nhưng trước...
... 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 ... nghóa
: Cây AVL là một câynhịphântìmkiếm trong đó chiều cao cây con
trái và chiều cao cây con phải của nút gốc hơn kém nhau không quá 1, và cả hai
cây con trái và phải này đều là cây AVL. ... 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...
... 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 ... 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:
! ... 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ị...
...
5
1.3 CÂYNHỊPHÂN
a. Khái niệm cây
Cây là đồ thị đơn, vô hướng, liên thông và không có chu trình.
b. Khái niệm câynhịphân
Cây nhịphân là cây có hai dạng nút:
Nút ... hai con là con trái và con phải.
Câynhịphân đầy đủ là câynhị phân, trong đó tất cả các lá có cùng
khoảng cách tới gốc.
Số lượng các lá trong câynhịphân đầy đủ (có chiều cao k) là h = ... L
8
(từ B4.1)
10
2.2.2 Hàm tìm tập con chứa TBTDL làm rò rỉ khoá
Hàm Tim_j tìm tập con chứa TBTDL làm rò rỉ khoá, giống như phương
pháp tìmkiếmnhị phân, để tìm giá trị j tương ứng khoá...
... 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 ... thuộc cây con phải.
Dưới đây là một ví dụ về câynhịphântìm kiếm:
9
Biểu diễn cây tổng quát bằng câynhịphân
Nhược điểm của các cấu trúc cây tổng quát là bậc của các nút
trên cây có ... một
mô hình toán.
2
- Chiều cao h của cây: mức lớn nhất của các nút lá.
CÂY NHỊPHÂN
Định nghĩa
Câynhịphân là cây mà mỗi nút có tối đa 2 cây con
Cây nhịphân có thể ứng dụng trong nhiều bài...
... xem một câynhịphân có phải là một cây
nhị phân đúng hay không? nếu cây không phải là câynhịphân đúng, tìm cách bổ sung
một số nút để cây trở thành câynhịphân đúng.
2. Một câynhịphân được ... trên cây khá
thuận lợi và thời gian tìmkiếm khá nhanh. Nếu câynhịphântìmkiếm là cân bằng
thì thời gian tìmkiếm là O(log n), với n là số phần tử trên cây.
2.3 Cài đặt câynhịphântìmkiếm
Cây ... Các câynhịphân đặc biệt
1.3.1 Câynhịphân đúng (strictly binary tree)
Một câynhịphân gọi là câynhịphân đúng nếu nút gốc và tấc cả các nút trung gian đều
có hai nút con. Nếu câynhị phân...
... màu:
2
Chương 5:
CÂY NHIỀU NHÁNH TÌMKIẾM
Cây nhịphân là cây bậc 2, mỗi nút của câynhịphân có tối đa là hai nhánh cây con. Còn
cây nhiều nhánh là cây có bậc lớn hơn 2, mỗi nút trên cây nhiều nhánh ... Search
Tree), cây nhiều nhánh tìmkiếm cũng giống như câynhịphântìmkiếm nhưng tổng quát
hơn. Mỗi nút trên cây nhiều nhánh tìmkiếm có nhiều khoá và nhiều nhánh cây con, số
khoá ít hơn số nhánh cây ... được áp dụng cho cây nhiều
nhánh như: bậc của cây, bậc của nút, đường đi …
1.2 Định nghĩa cây nhiều nhánh tìm kiếm
Ở chương trước, chúng ta đã nghiên cứu và cài đặt câynhịphântìmkiếm (Binary...