<?php $list = new SplDoublyLinkedList(); // 创建双向链表对象 // 尾部插入 $list->push('张三'); $list->push('李四'); $list->push('王五'); // 头部插入 $list->unshift('陈二'); $list->unshift('刘一'); if ($list->isEmpty()) { echo '双向链表为空' . PHP_EOL; } else { $count = $list->count(); echo "双向链表有{$count}个节点" . PHP_EOL; // 双向链表有5个节点 } // 遍历所有节点 $list->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO); for ($list->rewind(); $list->valid(); $list->next()) { // $list->rewind() 指针移到头节点 // $list->valid() 检查当前指针后继是否还包含更多节点 // $list->current() 获取当前节点数据 // $list->next() 指针移到下一个节点 echo $list->current() . ' '; } // 刘一 陈二 张三 李四 王五 // 由于上面遍历所有节点,指针已经移到了链表结尾,故指针后继已经没有节点了 echo PHP_EOL; echo var_export($list->valid(), true) . PHP_EOL; // false echo var_export($list->current(), true) . PHP_EOL; // NULL
Copyright © 2024 码农人生. All Rights Reserved