2011-10-25 16 views
1

可能性の重複:
Implement linked list in phpLinkedListの

C++はポインタを持っており、JavaでTempClass t = new TempClass();のようなオブジェクトを定義することができますので、私たちは、Java、C++でリンクリストを作ることができます。

PHPでリンクリストを作成するにはどうすればよいですか?

答えて

4

標準PHPライブラリ(SPL-here)はいくつかの実装を提供しています。それ以外にも、"リンクされたリストphp"のような簡単なグーグルグーグルでは、満足のいく結果が得られます!

+0

私は "Linked list PHP"のgoogle検索を行い、最初のヒットはこのページです。 Linked list PHPのgoogle検索をするように教えてください。私はあなたがそこで何をしたかを見て、それをやめてください。 "google it" - 必要に応じて質問者のために - stackoverflowを歓迎していない、yahooの回答とexpert-exchange.comにそれらの種類の回答を追加してください。 –

3

ここに、PHPでLinkedListを作成する方法を示します。

C#またはJavaと同じ考えです。

Nodeクラスを定義し、リンクリストクラスでそのクラスをラップする必要があります。 PHPでhttp://www.codediesel.com/php/linked-list-in-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 

?> 

内部の上で何が起こっているかを言葉で表現する方法:

新しいPHP Nodeという名前のクラスがメンバー変数$ dataと$ nextで作成されます。 $ dataは、リンクリストの各リンクに含まれる情報を保持します。 $ nextは、リスト内の次のノードのアドレスを持ちます。

LinkedListクラスは、リンクされたノードのコレクションをラップします。メンバー変数$ headは、リンクされたリストの最初のノードを指します。メソッドinsertは新しいNodeをメモリに作成します。新しいノードは、古いヘッドへの次の参照点を有する。次に、新しく作成されたノードを参照するようにヘッドが作られます。したがって、このリンクされたリストは、書籍のスタックのようなスタックを表します。