Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Nota kajian PHP: struktur data dan algoritma

Nota kajian PHP: struktur data dan algoritma

WBOY
WBOYasal
2023-10-09 23:54:361458semak imbas

Nota kajian PHP: struktur data dan algoritma

Nota Kajian PHP: Struktur Data dan Algoritma

Ikhtisar:
Struktur dan algoritma data ialah dua konsep yang sangat penting dalam sains komputer. Dalam pengaturcaraan PHP, kita selalunya perlu menggunakan pelbagai struktur data untuk menyimpan dan mengendalikan data, dan kita juga perlu menggunakan algoritma untuk melaksanakan pelbagai fungsi. Artikel ini akan memperkenalkan beberapa struktur dan algoritma data yang biasa digunakan, dan menyediakan contoh kod PHP yang sepadan.

1. Struktur linear

  1. Array
    Array ialah salah satu struktur data yang paling biasa digunakan dan boleh digunakan untuk menyimpan set data yang dipesan. Tatasusunan PHP ialah koleksi peta tersusun (nilai kunci), dan anda boleh menggunakan subskrip untuk mengakses elemen dalam tatasusunan. Berikut ialah beberapa operasi tatasusunan biasa:
  • Buat tatasusunan: $arr = tatasusunan(1, 2, 3
  • Tambah elemen: $arr[] = 4; ;
  • Padam elemen: unset($arr[0]);
  • Panjang tatasusunan: count($arr);
  • Loop traversal: foreach ($arr as $value) { ... }
Senarai terpaut Senarai)
    Senarai terpaut ialah struktur data yang terdiri daripada satu siri nod, setiap nod mengandungi data dan penunjuk ke nod seterusnya. Senarai terpaut boleh melaksanakan operasi sisipan dan pemadaman yang cekap, tetapi operasi carian adalah perlahan. Berikut ialah contoh senarai terpaut yang mudah:

  1. class Node {
        public $data;
        public $next;
    
        public function __construct($data = null) {
            $this->data = $data;
            $this->next = null;
        }
    }
    
    class LinkedList {
        public $head;
    
        public function __construct() {
            $this->head = null;
        }
    
        public function insert($data) {
            $newNode = new Node($data);
            if ($this->head === null) {
                $this->head = $newNode;
            } else {
                $currentNode = $this->head;
                while ($currentNode->next !== null) {
                    $currentNode = $currentNode->next;
                }
                $currentNode->next = $newNode;
            }
        }
    
        public function display() {
            $currentNode = $this->head;
            while ($currentNode !== null) {
                echo $currentNode->data . " ";
                $currentNode = $currentNode->next;
            }
        }
    }
    
    $linkedList = new LinkedList();
    $linkedList->insert(1);
    $linkedList->insert(2);
    $linkedList->insert(3);
    $linkedList->display();
  2. 2. Struktur bukan linear

Timbunan (Timbunan)
    Timbunan ialah struktur data masuk-dahulu-keluar (LIFO) yang boleh dilaksanakan menggunakan tatasusunan atau senarai terpaut. Berikut ialah contoh tindanan mudah:

  1. class Stack {
        private $arr;
    
        public function __construct() {
            $this->arr = array();
        }
    
        public function push($data) {
            array_push($this->arr, $data);
        }
    
        public function pop() {
            if (!$this->isEmpty()) {
                return array_pop($this->arr);
            }
        }
    
        public function isEmpty() {
            return empty($this->arr);
        }
    }
    
    $stack = new Stack();
    $stack->push(1);
    $stack->push(2);
    $stack->push(3);
    echo $stack->pop();  // 输出 3
Barisan
    Barisan ialah struktur data masuk dahulu keluar (FIFO) yang boleh dilaksanakan menggunakan tatasusunan atau senarai terpaut. Berikut ialah contoh baris gilir mudah:

  1. class Queue {
        private $arr;
    
        public function __construct() {
            $this->arr = array();
        }
    
        public function enqueue($data) {
            array_push($this->arr, $data);
        }
    
        public function dequeue() {
            if (!$this->isEmpty()) {
                return array_shift($this->arr);
            }
        }
    
        public function isEmpty() {
            return empty($this->arr);
        }
    }
    
    $queue = new Queue();
    $queue->enqueue(1);
    $queue->enqueue(2);
    $queue->enqueue(3);
    echo $queue->dequeue();  // 输出 1
  2. 3. Algoritma yang biasa digunakan

Algoritma pengisihan
  1. Isih buih
  2. Isih pilihan
  3. Isih sisipan
  4. Isih Isih
  5. Isih cepat
  6. Isih cepat
  7. Carian binari
  8. Algoritma Rekursif
  9. Factorial
  10. Jujukan Fibonacci
  11. Di atas adalah contoh kod untuk beberapa struktur dan algoritma data biasa Dengan mempelajari dan memahami kod ini, anda boleh menguasai struktur dan algoritma data PHP dengan lebih baik. Sudah tentu, terdapat banyak lagi struktur data dan algoritma yang boleh dipelajari dan diterokai. Saya harap pembaca dapat terus belajar dan berlatih dan terus meningkatkan kebolehan mereka dalam bidang pengaturcaraan.

Atas ialah kandungan terperinci Nota kajian PHP: struktur data dan algoritma. 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