<?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