Professional Documents
Culture Documents
Ch ng 7. u trúc cây
v H y m t ph n t có khóa x
Vi c h y m t ph n t X ra kh i cây ph i b o m u ki n ràng bu c c a
CNPTK.
Có 3 tr ng h p khi h y nút X có th x y ra:
− X là nút lá.
− X ch có 1 con (trái ho c ph i).
− X có c 2 con
o Tr ng h p th nh t: ch n gi n h y X vì nó không móc n i n ph n t
nào khác.
v T o m t cây CNPTK
Ta có th t o m t cây nh phân tìm ki m b ng cách l p l i quá trình thêm 1 ph n t
vào m t cây r ng.
v H y toàn b CNPTK
Vi c toàn b cây có th c th c hi n thông qua thao tác duy t cây theo th t
sau. Ngh a là ta s h y cây con trái, cây con ph i r i m i h y nút g c.
void removeTree(TREE &T) {
if(T!=NULL) {
Ch ng 7. C u trúc cây Trang 84
u trúc d li u và gi i thu t
removeTree(T->pLeft);
removeTree(T->pRight);
delete(T);
}
}
7.4. ánh giá
T t c các thao tác searchNode, insertNode, delNode trên CNPTK u có ph c
t p trung bình O(h), v i h là chi u cao c a cây
Trong trong tr ng h p t t nh t, CNPTK có n nút s có cao h = log2(n). Chi phí
tìm ki m khi ó s t ng ng tìm ki m nh phân trên m ng có th t .
Tuy nhiên, trong tr ng h p x u nh t, cây có th b suy bi n thành 1 DSLK (khi
mà m i nút u ch có 1 con tr nút lá). Lúc ó các thao tác trên s có ph c t p O(n).
Vì v y c n có c i ti n c u trúc c a CNPTK t c chi phí cho các thao tác là
log2(n).
Bài t p:
1. Cài t ch ng trình mô ph ng tr c quan các thao tác trên cây nh phân, cây nh
phân tìm ki m.
2. Vi t các hàm xác nh các thông tin c a cây nh phân T:
• S nút lá
• S nút có úng 1 cây con
• S nút có úng 2 cây con
• S nút có khóa nh h n x (gi s T là CNPTK)
• S nút có khóa l n h n x (gi s T là CNPTK)
• S nút có khóa l n h n x và nh h n y (T là CNPTK)
• Chi u cao c a cây
• In ra t t c các nút t ng (m c) th k c a cây T
• In ra t t c các nút theo th t t t ng 0 n t ng th h-1 c a cây T (h là
chi u cao c a T).
• Ki m tra xem T có ph i là cây cân b ng hoàn toàn không.
• l ch l n nh t trên cây. ( l ch c a m t nút là l ch gi a chi u cao
c a cây con trái và cây con ph i c a nó. l ch l n nh t trên cây là
l ch c a nút có l ch l n nh t).
3. Xét thu t gi i t o cây nh phân tìm ki m. N u th t các khóa nh p vào là nh
sau: 8 3 5 2 20 11 30 9 18 4
thì hình nh cây t o c nh th nào ?
Sau ó, n u h y l n l t các nút theo th t nh sau : 18, 20
thì cây s thay i nh th nào trong t ng b c h y, v s (nêu rõ ph ng
pháp h y khi nút có c 2 cây con trái và ph i)
4. Gi s A là m t m ng các s th c ã có th t t ng. Hãy vi t hàm t o m t cây
nh phân tìm ki m có chi u cao th p nh t t các ph n t c a A.