<?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;
}
}
?>
PHP实现链表(暂存)
最新推荐文章于 2024-08-12 10:31:29 发布