二重リンクリストクラス: SplDoublyLinkedList
push: リンクリストの最後にノードを挿入します
Pop: リンクされたリストの末尾ノードを取得し、リンクされたリストからこのノードを削除します。この操作では現在のポインターの位置は変更されません。
unshift: リンクされたリストの先頭にノードを挿入します
シフト: リンクリストの先頭ノードを削除します
current: リンク リストの現在のノード ポインターが指す要素を取得するには、呼び出す前に Rewind を呼び出す必要があります。ポイントされたノードが削除されると、空のノードをポイントします
next: リンクされたリストの現在のポインターが次のノードを指すようにし、それに応じて current の戻り値が変化します
下: リンクされたリストの先頭要素を取得します。現在のポインターの位置は変更されません
top: リンクされたリストの末尾要素を取得します。現在のポインターの位置は変更されません
count: リンクされたリスト内のノードの数をカウントします
key: 現在のノードのキー値を返します
offsetSet: 指定されたキーの値を設定します。 注: キーが 0 の場合、0 はリンクされたリストの先頭または末尾を指し、スタック内のスタックの先頭を指します。
offfunset: 指定されたキーの値の登録を解除します
<code><span><?</span>php <span>/** * Created by 马廷广 * User: 马廷广 * Date: 2015/8/5 * Time: 10:52 */</span><span>$obj</span><span>=</span><span>new</span> SplDoublyLinkedList(); <span>$obj</span><span>-></span>push(<span>'b'</span>); <span>$obj</span><span>-></span>push(<span>'c'</span>); <span>$obj</span><span>-></span>unshift(<span>'a'</span>); var_dump(<span>$obj</span>); <span>/* array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } ) */</span><span>$obj</span><span>-></span>rewind(); var_dump(<span>$obj</span><span>-></span>current());<span>//string(1) "a"</span><span>$obj</span><span>-></span>next(); var_dump(<span>$obj</span><span>-></span>current());<span>//string(1) "a"</span> var_dump(<span>$obj</span><span>-></span>bottom());<span>//string(1) "a"</span> var_dump(<span>$obj</span><span>-></span>top());<span>//string(1) "c"</span> var_dump(<span>$obj</span><span>-></span>pop());<span>//string(1) "c"</span> var_dump(<span>$obj</span>); <span>/* * array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } */</span> var_dump(<span>$obj</span><span>-></span>shift());<span>//string(1) "a"</span> var_dump(<span>$obj</span>); <span>/* * array(1) { [0]=> string(1) "b" } */</span></code>
キュークラスのrewind、offsetSetなどのメソッドはリンクリストと同様です
<code><span><?</span>php <span>/** * Created by 马廷广 * User: 马廷广 * Date: 2015/8/5 * Time: 11:47 */</span><span>$stack</span><span>=</span><span>new</span> SplStack(); <span>$stack</span><span>-></span>push(<span>'a'</span>); <span>$stack</span><span>-></span>push(<span>'b'</span>); <span>$stack</span><span>-></span>push(<span>'c'</span>); echo <span>$stack</span><span>-></span>count();<span>//3</span><span>$stack</span><span>-></span>rewind(); echo <span>$stack</span><span>-></span>current();<span>//c</span><span>$stack</span><span>-></span>offsetSet(<span>0</span>,<span>'d'</span>);<span>//offsetSet中0指向的是图中的栈顶,由栈顶向下递增1,2,3,4</span><span>while</span>(<span>$stack</span><span>-></span>valid()){ echo <span>$stack</span><span>-></span>key()<span>.</span><span>"->"</span><span>.</span><span>$stack</span><span>-></span>current(); <span>$stack</span><span>-></span>next(); } <span>/*2->d 1->b 0->a */</span></code>
著作権表示: この記事はブロガーによるオリジナル記事であり、ブロガーの許可なしに転載することはできません。
上記では、PHP 標準ライブラリ spl のリンクされたリスト、スタック、キューについて、その側面も含めて紹介しました。PHP チュートリアルに興味のある友人にとって役立つことを願っています。