Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Max Heap trong Java

Max heap là một cây nhị phân hoàn chỉnh, trong đó giá trị của nút gốc ở mỗi bước lớn hơn hoặc bằng giá trị tại nút con.

Dưới đây là triển khai Max Heap sử dụng các hàm thư viện.

Ví dụ

import java.util.*; 
public class Demo{ 
    public static void main(String args[]){ 
        PriorityQueue<Integer> my_p_queue = new PriorityQueue<Integer>(Collections.reverseOrder()); 
        my_p_queue.add(43); 
        my_p_queue.add(56); 
        my_p_queue.add(99); 
        System.out.println("Các phần tử trong hàng đợi ưu tiên là: "); 
        Iterator my_iter = my_p_queue.iterator(); 
        while (my_iter.hasNext()) 
            System.out.println(my_iter.next()); 
        my_p_queue.poll(); 
        System.out.println("Sau khi xóa phần tử bằng hàm poll, các phần tử hàng đợi là:"); 
        Iterator<Integer> my_iter_2 = my_p_queue.iterator(); 
        while (my_iter_2.hasNext()) 
            System.out.println(my_iter_2.next()); 
        Object[] my_arr = my_p_queue.toArray(); 
        System.out.println("Biểu diễn mảng của max heap: "); 
        for (int i = 0; i < my_arr.length; i++) 
            System.out.println("Giá trị: " + my_arr[i].toString()); 
    } 
}

Kết quả

Các phần tử trong hàng đợi ưu tiên là: 99 43 56 
Sau khi xóa phần tử bằng hàm poll, các phần tử hàng đợi là: 56 43 
Biểu diễn mảng của max heap: Value: 56 Value: 43

Lớp Demo chứa hàm main. Bên trong hàm main, một instance của hàng đợi ưu tiên được định nghĩa và các phần tử được thêm vào bằng hàm add. Một iterator được định nghĩa và dùng để duyệt qua các phần tử trong hàng đợi ưu tiên. Hàm poll được dùng để xóa một phần tử từ danh sách. Tiếp theo, các phần tử được duyệt và hiển thị trên màn hình.