Tải bản đầy đủ (.ppt) (31 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (251.56 KB, 31 trang )


Gi¸o ¸n:
C©y nhÞ ph©n t×m kiÕm
Häc viªn thùc hiÖn: §ång ThÞ Thu
Cao häc: K15
Cao häc K15
M«n: øng dông CNTT trong d¹y häc
  

Néi dung chÝnh cña bµi
I. §Þnh nghÜa c©y nhÞ ph©n
II. BiÓu diÔn c©y nhÞ ph©n
III. C¸c phÐp to¸n duyÖt c©y nhÞ ph©n
iV. Mét sè thao t¸c trªn c©y nhÞ ph©n
Bµi tËp

I.ĐỊNH NGHĨA
Cây nhị phân là cây có các nút đã được
khoá hóa và được sắp xếp theo một thứ tự phản
ánh vị trí của nút ở trong cây.
Đặc điểm của cây nhị phân:

Mọi nút trên cây chỉ có tối đa 2 con.

Với mỗi một nút:+ Toàn bộ những nút ở cây
con bên trái của nó đều có khoá nhỏ hơn khoá
của nó.
+ Toàn bộ những nút ở cây
con bên phải của nó đều có khoá lớn hơn khoá
của nó.



Ví dụ:
Đây là cây nhị phân với toán tử ứng với gốc,
toán hạng 1 ứng với cây con trái, toán hạng 2 ứng
với cây con phải
+
+
x
*
v
y
-
z t
u
/

Một số dạng đặc biệt của cây nhị phân
A
B
C
D
E
a) cây nhi phân
lệch trái
a
A
B
C
D
E

b) Cây nhị phân
lệch phải
b
A
C
B
D
E
D
A
B
C
E
d
c
c, d) Cây nhị phân
Cây zic- zắc

Một số dạng đặc biệt của cây nhị 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ị phân đầy đủ

II. BIỂU DIỄN CÂY NHỊ PHÂN
1. Lưu trữ kế tiếp.

Cây nhị phân đầy đủ:
- Đánh số cho các nút trên cây theo thứ tự
lần lượt từ mức 1 trở lên, hết mức này đến mức
khác, từ trái sang phải đối với mỗi mức.
Ví dụ: Đánh số cây ở hình dưới như sau:

.
7
A
C
G
B
E
D
F
4 5
2
1
3
6

1. Lưu trữ kế tiếp (tiếp).
Qui luật:
- Con của nút thứ i là các nút 2i và 2i + 1
- Cha của nút thứ j là [j/2]
Ta lưu trữ cây nhị phân đầy đủ bằng một
vectơ V theo nguyên tắc: nút thứ i của cây được
lưu trữ ở V[1]. Đó là cách lưu trữ kế tiếp, biết
được địa chỉ nút cha sẽ tính được địa chỉ nút
con và ngược lại.
Vậy với cây trên ta sẽ có
A B C D E F G
V[1] V[2] V[3] V[4] V[5] V[6] V[7]

1. Lưu trữ kế tiếp (tiếp).
Nhận xét:

- Với cây nhị phân hoàn chỉnh mà các nút ở
mức cuối đều dạt về phía trái thì cách lưu trữ
này vẫn phù hợp.
-
Các cây nhị phân khác thì cách lưu trữ này
gây lãng phí do có nhiều phần tử bị bỏ trống.
-
Do cây luôn biến động ( thêm, bớt các nút)
nên cách lưu trữ này rất khó khăn cho các thao
tác đó.

2. Lưu trữ móc nối
Mỗi nút gồm:
Trong đó:
Left: Ứng với con trỏ, trỏ tới cây
con trái của nút đó.
Right:Ứng với con trỏ, trỏ tới cây
con phải của nút đó.
Infor: Thông tin của nút.
Key: Khoá của nút.
Left Infor Key Right
Item

2. Lưu trữ móc nối(tiếp)
Ví dụ: Cây nhị phân
Được lưu trữ móc nối như sau:
A
C
F
B

E
D
F
G
I
H
A
B
D
C
F
E
H I
G
T

Khai báo cây (Dùng danh sách móc nối)
Type
Item_Type=Record
Key: Key_Type;
Infor:Data;
End;
Search_Type = ^ Node;
Node= Record
Item:Item_Type;
Left,Right: Search_Type;
End;

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×