php怎么实现双向链表

   2024-10-12 5940
核心提示:在PHP中实现双向链表可以通过自定义一个双向链表类来实现。下面是一个简单的PHP双向链表的实现示例:class Node {public $data;p

在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,并实现了插入节点和正向、反向遍历链表的方法。

您可以根据需要扩展该类,添加其他操作方法来实现更多功能。希望这个示例能帮助到您。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号