php实现链表的基本操作

Posted 一个phper的日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php实现链表的基本操作相关的知识,希望对你有一定的参考价值。

<?php  

class node{
    private $value;
    private $next;
    public function __construct($value=0,$next=null){
        $this->value=$value;
        $this->next=$next;
    }
    public function getValue(){
        return $this->value;
    }
    public function setValue($value){
        return $this->value=$value;
    }
    public function getNext(){
        return $this->next;
    }
    public function setNext($next){
        return $this->next=$next;
    }
}
function reverse($node){
    if (null == $node || null == $node->getNext()) {
        return $node;
    }
    $reversednode = reverse($node->getNext());
    $node->getNext()->setNext($node);
    $node->setNext(null);
    return $reversednode;
}
function insert($node,$value,$position){
    $tmp=$node;
    for($i=0;$i<$position;$i++){
        $tmp=$tmp->getNext();
    }
    $insertnode=new node($value);
    $insertnode->setNext($tmp->getNext());
    $tmp->setNext($insertnode);
}
function delete($node,$position){
    $tmp=$node;
    for($i=0;$i<$position;$i++){
        $tmp=$tmp->getNext();
    }
    $tmp->setNext($tmp->getNext()->getNext());
}
echo "<pre>";
$node=new node();
$tmp=$node;
for($i=1;$i<10;$i++){
    $nextnode=new node($i);
    $tmp->setNext($nextnode);
    $tmp=$nextnode;
}
print_r($node);
$node=reverse($node);
insert($node,11,3);
delete($node,3);
print_r($node);
?>

 

以上是关于php实现链表的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

NC41 最长无重复子数组/NC133链表的奇偶重排/NC116把数字翻译成字符串/NC135 股票交易的最大收益/NC126换钱的最少货币数/NC45实现二叉树先序,中序和后序遍历(递归)(代码片段

双向链表的原理与实现

python3实现链表的基础操作

C语言实现链表的逆序打印

Java实现双向链表的基本操作

线性表--链表(PHP实现)