Rumah > pembangunan bahagian belakang > tutorial php > PHP Master | Struktur data untuk devs php: timbunan

PHP Master | Struktur data untuk devs php: timbunan

Jennifer Aniston
Lepaskan: 2025-02-23 08:39:10
asal
968 orang telah melayarinya

Artikel ini memperkenalkan timbunan, struktur data seperti pokok khusus yang berkait rapat dengan susunan, beratur, dan pokok. Heaps mengekalkan harta timbunan : nilai nod induk sentiasa diperintahkan berbanding dengan nilai anak -anaknya. Konsep utama termasuk max-heaps, min-heaps, dan giliran keutamaan.

Takeaways utama:

  • timbunan adalah struktur seperti pokok yang mematuhi harta timbunan. Variasi termasuk max-heaps (ibu bapa ≥ kanak-kanak), tumpukan min (ibu bapa ≤ kanak-kanak), dan beratur keutamaan.
  • Biasanya dilaksanakan sebagai pokok binari yang lengkap, timbunan kekurangan adik -beradik atau pesanan sepupu, tidak seperti pokok binari. Operasi Biasa: Buat, ISEMPTY, INSERT, EXTRACT.
  • Pelaksanaan timbunan berasaskan array boleh dilaksanakan. Tumpukan binari dengan nod n mempunyai paling banyak 2 n 1 nod. Penyisipan membalikkan proses pengekstrakan.
  • PHP menawarkan SplHeap, SplMaxHeap, SplMinHeap, dan SplPriorityQueue untuk pengurusan timbunan. Beratur keutamaan, selalunya berasaskan timbunan, cari penggunaan di meja perkhidmatan dan algoritma graf.

tumpukan secara terperinci:

Max-heaps meletakkan nilai terbesar di akar, dengan ibu bapa selalu lebih besar daripada atau sama dengan anak-anak mereka. Min-Heaps adalah songsang. SPL PHP menyediakan alat untuk semua jenis ini. Contoh max-heap:

PHP Master | Data Structures for PHP Devs: Heaps

timbunan, sementara sering pokok binari, kekurangan pesanan pokok binari yang wujud. Operasi asas termasuk: membuat, isempty, sisipan, dan ekstrak (mengeluarkan akar). Mengekstrak akar dari timbunan daun

semiheap , yang memerlukan penstrukturan semula. Ini dilakukan dengan menggerakkan nod terakhir ke akar dan kemudian "mengalir ke bawah" akar baru sehingga harta timbunan dipulihkan.

PHP Master | Data Structures for PHP Devs: Heaps

Pelaksanaan timbunan berasaskan array:

Tumpukan max binari boleh dilaksanakan menggunakan array. Kod PHP berikut menunjukkan ini:

Penyisipan menambah item ke hujung dan "menipu" ke kedudukan yang betul. Pengekstrakan menghilangkan akar, menggantikannya dengan item terakhir, dan "menipu ke bawah."
<?php
class BinaryHeap {
    protected $heap;
    // ... (rest of the code as provided in the input) ...
}
?>
Salin selepas log masuk
3

php's

dan

memudahkan pengurusan timbunan. Memperluas kelas ini dan mengatasi kaedah untuk perbandingan tersuai. SplMaxHeap SplMinHeap

:

SplMaxHeap SplMinHeap compare bertindak seperti barisan tetapi menggunakan tumpukan max secara dalaman. Ia berguna untuk tugas berasaskan keutamaan. Mengatasi kaedah

untuk menentukan pesanan keutamaan. Contoh:

SplPriorityQueue Ringkasan:

Artikel ini meliputi struktur data timbunan, pelaksanaannya dalam PHP (kedua -duanya secara manual dan menggunakan kelas SPL), dan aplikasinya, terutamanya dalam beratur keutamaan. Artikel masa depan akan meneroka graf.

Soalan Lazim (Soalan Lazim):

Seksyen FAQ yang disediakan adalah komprehensif dan tepat menangani soalan umum mengenai timbunan dalam PHP. Tidak ada keperluan untuk pengubahsuaian atau penambahan.

Atas ialah kandungan terperinci PHP Master | Struktur data untuk devs php: timbunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan