PHP实现链表(暂存)

xiaoxiao2021-02-28  89

<?php class node{ public $data; public $next; public function __construct($data){ $this->data = $data; $this->next = NULL; } } class Linklist{ public $head = NULL; public $length = 0; public function __construct($data=NULL){ $this->head = new node($data); } public function isEmpty(){ return $this->head->next == NULL; } public function getTail(){ $current = $this->head; while($current->next != NULL){ $current = $current->next; } return $current; } public function print_list(){ $current = $this->head->next; while($current != NULL){ echo $current->data,'<br/>'; $current = $current->next; } } public function push_front($node){ $node->next = $this->head->next; $this->head->next = $node; $this->length++; } public function push_back($node){ $tail = $this->getTail(); $tail->next = $node; $this->length++; } public function pop_front(){ if($this->isEmpty()){ return false; } $this->head->next = $this->head->next->next; $this->length--; return true; } public function pop_back(){ if($this->isEmpty()){ return false; } $current = $this->head; $tmp = NULL; while($current->next != NULL){ $tmp = $current; $current = $current->next; } $tmp->next = NULL; $this->length--; return true; } public function del_element($data){ $current = $this->head->next; $tmp = $this->head; while($current != NULL){ if($current->data == $data){ $tmp->next = $current->next; return true; } $tmp = $current; $current = $current->next; } return false; } public function reverse_list(){ $current = $this->head->next; $tmp = NULL; $rlist = NULL; while($current != NULL){ $tmp = $current->next; $current->next = $rlist; $rlist = $current; $current = $tmp; } $this->head->next = $rlist; } } ?>
转载请注明原文地址: https://www.6miu.com/read-77587.html

最新回复(0)