Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Struktur data PHP: daya tarikan senarai terpaut, meneroka organisasi data dinamik

Struktur data PHP: daya tarikan senarai terpaut, meneroka organisasi data dinamik

WBOY
WBOYasal
2024-06-04 12:53:57548semak imbas

Senarai terpaut ialah struktur data yang menggunakan satu siri nod dengan data dan penunjuk untuk menyusun elemen Ia amat sesuai untuk memproses set data yang besar dan operasi pemadaman/pemadaman yang kerap. Komponen asasnya termasuk nod (data dan penunjuk ke nod seterusnya) dan nod kepala (menunjuk ke nod pertama dalam senarai terpaut). Operasi senarai terpaut biasa termasuk: penambahan (sisipan ekor), pemadaman (nilai khusus) dan traversal.

Struktur data PHP: daya tarikan senarai terpaut, meneroka organisasi data dinamik

Struktur Data PHP: Pesona Senarai Terpaut

Pengenalan

Senarai terpaut ialah struktur data linear yang elemennya disusun sebagai satu siri nod, setiap nod mengandungi data seterusnya dan penunjuk nod seterusnya . Tidak seperti tatasusunan, elemen senarai terpaut tidak perlu disimpan bersebelahan dalam ingatan, yang menjadikannya sesuai untuk memproses set data yang besar dan operasi pemadaman dan pemadaman yang kerap.

Konsep

Komponen asas senarai terpaut ialah nod Setiap nod terdiri daripada bahagian berikut:

  • Data: menyimpan nilai sebenar
  • Penunjuk (seterusnya): menunjuk ke nod seterusnya.
  • Senarai terpaut berinteraksi antara satu sama lain melalui sambungan nod kepala. Nod kepala ialah nod khas yang menunjuk ke nod pertama dalam senarai terpaut.

Operasi

Berikut ialah beberapa operasi biasa yang dilaksanakan dalam senarai terpaut:

class Node {
    public $data;
    public $next;
}

class LinkedList {
    private $head;

    // 添加新节点到尾部
    public function append($data) {
        $new_node = new Node();
        $new_node->data = $data;

        if ($this->head === null) {
            $this->head = $new_node;
        } else {
            $current_node = $this->head;
            while ($current_node->next !== null) {
                $current_node = $current_node->next;
            }
            $current_node->next = $new_node;
        }
    }

    // 从链表中删除特定值
    public function delete($data) {
        if ($this->head === null) {
            return;
        }

        if ($this->head->data === $data) {
            $this->head = $this->head->next;
            return;
        }

        $current_node = $this->head;
        while ($current_node->next !== null) {
            if ($current_node->next->data === $data) {
                $current_node->next = $current_node->next->next;
                return;
            }
            $current_node = $current_node->next;
        }
    }

    // 遍历链表并打印数据
    public function traverse() {
        $current_node = $this->head;
        while ($current_node !== null) {
            echo $current_node->data . " ";
            $current_node = $current_node->next;
        }
    }
}

Kes praktikal

Buat senarai terpaut dan lakukan beberapa operasi:

Orreee

Atas ialah kandungan terperinci Struktur data PHP: daya tarikan senarai terpaut, meneroka organisasi data dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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