91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

php怎么實現雙向鏈表

PHP
小億
86
2024-06-12 12:57:20
欄目: 編程語言

在PHP中實現雙向鏈表可以通過自定義一個雙向鏈表類來實現。下面是一個簡單的PHP雙向鏈表的實現示例:

class Node {
    public $data;
    public $prev;
    public $next;
    
    public function __construct($data) {
        $this->data = $data;
        $this->prev = null;
        $this->next = null;
    }
}

class DoublyLinkedList {
    private $head;
    private $tail;
    
    public function __construct() {
        $this->head = null;
        $this->tail = null;
    }
    
    public function insertAtEnd($data) {
        $newNode = new Node($data);
        
        if ($this->head === null) {
            $this->head = $newNode;
            $this->tail = $newNode;
        } else {
            $newNode->prev = $this->tail;
            $this->tail->next = $newNode;
            $this->tail = $newNode;
        }
    }
    
    public function displayForward() {
        $current = $this->head;
        while ($current !== null) {
            echo $current->data . " ";
            $current = $current->next;
        }
        echo "\n";
    }
    
    public function displayBackward() {
        $current = $this->tail;
        while ($current !== null) {
            echo $current->data . " ";
            $current = $current->prev;
        }
        echo "\n";
    }
}

// 使用示例
$linked_list = new DoublyLinkedList();
$linked_list->insertAtEnd(1);
$linked_list->insertAtEnd(2);
$linked_list->insertAtEnd(3);

$linked_list->displayForward(); // 輸出: 1 2 3
$linked_list->displayBackward(); // 輸出: 3 2 1

在上面的示例中,我們定義了一個Node類來表示鏈表節點,包含數據$data、指向前一個節點的指針$prev和指向后一個節點的指針$next。然后我們定義了DoublyLinkedList類來表示雙向鏈表,包含頭節點$head和尾節點$tail,并實現了插入節點和正向、反向遍歷鏈表的方法。

您可以根據需要擴展該類,添加其他操作方法來實現更多功能。希望這個示例能幫助到您。

0
额济纳旗| 合作市| 新昌县| 铜川市| 榆中县| 恩施市| 巴彦淖尔市| 姚安县| 安龙县| 玛纳斯县| 贡山| 潞西市| 那曲县| 宝丰县| 新余市| 宜兰县| 大新县| 准格尔旗| 搜索| 邵东县| 陵水| 信丰县| 潼关县| 红安县| 台南市| 惠东县| 水富县| 太仆寺旗| 光泽县| 潍坊市| 栖霞市| 德保县| 墨江| 综艺| 甘谷县| 锡林郭勒盟| 清流县| 锡林浩特市| 朝阳市| 兰西县| 无极县|