Computer >> Máy Tính >  >> Lập trình >> Lập trình

Các đống Fibonacci trong cấu trúc dữ liệu


Giống như đống Nhị thức, đống Fibonacci là tập hợp các cây. Chúng dựa trên đống nhị thức một cách lỏng lẻo. Không giống như những cây có trong đống nhị thức là những cây có thứ tự trong đống Fibonacci có gốc nhưng không có thứ tự.

Mỗi nút x trong đống Fibonacci chứa một con trỏ p [x] tới cha của nó và một con trỏ [x] tới bất kỳ nút con nào của nó. Các con của x được liên kết với nhau trong một danh sách liên kết kép vòng tròn được gọi là danh sách con của x. Mỗi con y trong danh sách con có các con trỏ trái [y] và phải [y] để trỏ trái và phải các anh chị em của y tương ứng. Nếu nút y là nút con duy nhất thì left [y] =right [y] =y. Thứ tự mà anh chị em ruột xuất hiện trong danh sách con là tùy ý.

Ví dụ về Fibonacci Heap

Các đống Fibonacci trong cấu trúc dữ liệu

Fibonacci Heap H này bao gồm năm Fibonacci Heap và 16 nút. Dòng có đầu mũi tên cho biết danh sách gốc. Nút tối thiểu trong danh sách được ký hiệu là min [H] đang giữ 4.

Các thuật toán nhanh tiệm cận cho các vấn đề như tính toán cây bao trùm tối thiểu, tìm nguồn đơn của đường đi ngắn nhất, v.v. làm cho việc sử dụng thiết yếu của đống Fibonacci.