php中的LinkedList

时间:2011-10-25 07:37:41

标签: php oop

  

可能重复:
  Implement linked list in php

我们可以在Java,C ++中创建链接列表,因为C ++有指针,而在Java中可以定义像TempClass t = new TempClass();这样的对象。

如何在PHP中创建链接列表?

2 个答案:

答案 0 :(得分:4)

标准PHP库(SPL - here)提供了一些实现。除此之外 - 谷歌搜索就像“链接列表php”一样简单,可以获得一些可接受的结果!

答案 1 :(得分:4)

以下是如何在PHP中创建LinkedList。

它与C#或Java的想法相同。

您需要定义一个Node类,并且需要将其包装在链表类中。

以下是一个完整的示例:http://www.codediesel.com/php/linked-list-in-php/

PHP中的基本链接列表示例:

<?
class Node{
    public $data;
    public $next;
    function __construct($data){
        $this->data = $data;
        $this->next = NULL;
    }
}
class LinkedList{
    public $head;
    function __construct(){
        $this->head = NULL;
    }
    public function insert($data){
        $link = new Node($data);
        $link->next = $this->head;
        $this->head= &$link;
    }
}

$m = new LinkedList();
$m->insert(2);
$m->insert(3);
$m->insert(4);

echo $m->head->data;              //prints 4
echo $m->head->next->data;        //prints 3
echo $m->head->next->next->data;  //prints 2

?>

如何在内部语言化上面发生的事情:

使用成员变量$ data和$ next创建一个名为Node的新PHP类。 $ data保存链表的每个链接中包含的信息。 $ next具有列表中下一个节点的地址。

LinkedList类包装了一组链接的节点。成员变量$ head指向链表中的第一个节点。方法insert在内存中创建一个新Node。新节点具有旧头的下一个参考点。然后使头部引用新创建的节点。因此,这个链表代表一个堆栈,就像一堆书。