14.3.2004 Ch ng 6: Fibonacci Heapsươ 1
C u trúc c a Fibonacci heap
Đnh nghĩa
M t Fibonacci heap là m t t p các cây mà m i cây đu là heap-
ordered.
Cây trong Fibonacci heap không c n thi t ph i là cây nh th c. ế
Cây trong Fibonacci heap là có g c nh ng không có th t ư
(unordered).
14.3.2004 Ch ng 6: Fibonacci Heapsươ 2
C u trúc c a Fibonacci heap (ti p) ế
°Hi n th c Fibonacci heap trong b nh :
M i nút x có
p[x]: con tr đn nút cha c a nó. ế
child[x]: con tr đn m t con nào đó trong các con c a nó. ế
°Các con c a x đc liên k t v i nhau trong m t danh sách vòng ượ ế
liên k t kép (circular, doubly linked list), g i là ế danh sách các
con c a x.
°M i con y trong danh sách các con c a x có các con tr
left[y], right[y] ch đn các anh em bên trái và bên ph i c a ế
y.
N u ếy là con duy nh t c a x thì left[y] = right[y] = y.
14.3.2004 Ch ng 6: Fibonacci Heapsươ 3
C u trúc c a Fibonacci heap (ti p) ế
°Hi n th c Fibonacci heap trong b nh (ti p): ế
Các tr ng khác trong nút ườ x
degree[x]: s các con ch a trong danh sách các con c a nút x
mark[x]: có tr bool là TRUE hay FALSE,
ch r ng x có m t m t con hay không k t l n cu i mà x đc ượ
làm thành con c a m t nút khác.
14.3.2004 Ch ng 6: Fibonacci Heapsươ 4
C u trúc c a Fibonacci heap (ti p) ế
°Hi n th c Fibonacci heap trong b nh (ti p): ế
Fibonacci heap H
Truy c p H b ng con tr min[H] đn nút g c c a cây ch a khoá ế
nh nh t g i là nút nh nh t c a H.
°N u ếH là tr ng thì min[H] = NIL.
T t c các nút g c c a các cây trong H đc liên k t v i nhau b i ượ ế
các con tr left và right c a chúng thành m t sách liên k t kép ế
vòng g i là danh sách các g c c a H.
n[H]: s các nút hi n có trong H.
14.3.2004 Ch ng 6: Fibonacci Heapsươ 5
C u trúc c a Fibonacci heap: ví d