Seperti yang ditunjukkan di bawah ini:
Impor java.util.arrays; // Kode tumpukan atas kecil mengimplementasikan heap kelas publik {// sesuaikan ke bawah, nilai maksimum di bagian atas adalah turun, yang terutama digunakan untuk menghapus dan membangun tumpukan. Saya mewakili indeks simpul yang akan disesuaikan, n mewakili indeks elemen terbanyak dari heap.// ketika penghapusan, saya adalah 0. Saat membangun heap, saya menyesuaikan ke depan dari simpul induk dari simpul terakhir public static void fixdown (int [] Data, i, int n) {int num = data [i]; int son son = i * 2 + 1; sementara i {n) {int num = i {i]; int son = i * 2 + 1; sementara i {n num = num = i {i]; int son = i * 2 + 1; sementara i {n num = num = i {i]; int son = i * 2 + 1; sementara i {n num = num = i {i]; int son = i * 2 * 2; < data[son])son++;if (num < data[son])break;data[i] = data[son];i = son;son = i * 2 + 1;}data[i] = num;}// Adjust upward, small value goes upward, used to increase, and adjust upward does not require setting the top index, it is definitely 0public static void fixUp(int[] data, int n) {int num = data[n];int father = (n - 1)/ 2; // Data [ayah]> num adalah kondisi dasar untuk memasuki loop. Jika ayah berkurang menjadi 0, itu tidak akan berkurang // ketika n sama dengan 0, ayah = 0; enters the dead loop, so when n==0, you need to jump out of the loop while (data[father] > num && n != 0) {data[n] = data[father];n = father;father = (n - 1) / 2;}data[n] = num;}// Delete, n represents the index of the last element of the heap public static void delete(int[] data, int n) {data[0] = Data [n]; data [n] = -1; fixdown (data, 0, n - 1);} // Peningkatan, saya mewakili angka yang akan ditambahkan, n mewakili indeks posisi yang akan ditambahkan, itu adalah elemen terakhir dari heap public static insert (int [] data,} {data num, num; num; num; num; num (numbe, n) num; num;} num/ nUM) {data [n] = num; fixup, n) num; num (n) DATA; public static void creat (int [] data, int n) {for (int i = (n -1)/ 2; i> = 0; i -) fixdown (data, i, n);} public static void main (string [] args) {int [] data = {15, 13, 1, 5, 20, 12, 8, 9, 9, 11}; 1); System.out.println (arrays.tostring (data)); // uji hapus (data, data.length - 1); hapus (data, data.length - 2); System.out.println (arrays.tostring (data)); // sisipan uji (data, 3, data.lengthy - 2); oute.pring (data);Artikel di atas tentang operasi heap implementasi java (tumpukan bangunan, memasukkan, menghapus) adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.