目次
1. ノードの追加と削除のメソッド
ホームページ バックエンド開発 PHPチュートリアル PHP標準ライブラリsplリンクリスト、スタック、キュー

PHP標準ライブラリsplリンクリスト、スタック、キュー

Aug 08, 2016 am 09:18 AM
dump gt obj stack string

二重リンクリストクラス: SplDoublyLinkedList

1. ノードの追加と削除のメソッド

push: リンクリストの最後にノードを挿入します
Pop: リンクされたリストの末尾ノードを取得し、リンクされたリストからこのノードを削除します。この操作では現在のポインターの位置は変更されません。 unshift: リンクされたリストの先頭にノードを挿入します
シフト: リンクリストの先頭ノードを削除します

2. ポインタ操作メソッド

巻き戻し: リンクリストの現在のポインタがリンクリストの先頭 (つまり、一番下) を指すようにします

current: リンク リストの現在のノード ポインターが指す要素を取得するには、呼び出す前に Rewind を呼び出す必要があります。ポイントされたノードが削除されると、空のノードをポイントします
next: リンクされたリストの現在のポインターが次のノードを指すようにし、それに応じて current の戻り値が変化します
下: リンクされたリストの先頭要素を取得します。現在のポインターの位置は変更されません
top: リンクされたリストの末尾要素を取得します。現在のポインターの位置は変更されません

3. その他のメソッド (使用法についてはスタック クラスを参照)

valid: リンクされたリストにまだ使用できるノードがあるかどうかを確認します。ループ出力時の判定

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>
ログイン後にコピー
スタッククラス: SplDoublyLinkedList クラスから継承された SplStack クラス

原則: スタッククラスの最下層はスタックによって実装されます。 スタックは先入れ後出しのデータです。 SplDoublyLinkedList クラスから継承されたメソッドには、spl が rewind メソッドを使用した後、図のスタックの先頭を指すなど、理解にいくつかの違いがあります。 Pop はスタックの最上位の要素を操作し、unshift と SHIFT はスタックの最下位の要素を操作します。 デキュー: キューを終了します

キュークラスの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 チュートリアルに興味のある友人にとって役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Jul 24, 2023 pm 07:55 PM

Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Java 開発で基本データ型を文字列に変換する必要がある場合、一般的な方法は String クラスの valueOf() 関数を使用することです。この関数は、基本データ型のパラメータを受け入れ、対応する文字列表現を返すことができます。この記事では、基本的なデータ型変換に String.valueOf() 関数を使用する方法を検討し、いくつかのコード例を提供します。

char配列を文字列に変換する方法 char配列を文字列に変換する方法 Jun 09, 2023 am 10:04 AM

char配列をstringに変換する方法:代入によって実現できます {char a[]=" abc d\0efg ";string s=a;} 構文を使用して、char配列にstringに値を直接代入させて実行します変換を完了するためのコード。

ダンプファイルとは何ですか? ダンプファイルとは何ですか? Jan 12, 2024 pm 04:58 PM

ダンプ ファイルは通常、ダンプ ファイルまたはコア ダンプ ファイルとも呼ばれるバイナリ ファイルを指します。この種類のファイルは、コンピュータ システムが重大なエラーや異常な状況に遭遇したときに生成され、システムやアプリケーションのステータス、スタック、レジスタ、メモリ イメージ、ログなどの情報を保存するために使用されます。

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

Java の String.replace() 関数を使用して、文字列内の文字 (文字列) を置換します。 Java の String.replace() 関数を使用して、文字列内の文字 (文字列) を置換します。 Jul 25, 2023 pm 05:16 PM

Java の String.replace() 関数を使用して文字列内の文字 (文字列) を置換する Java では、文字列は不変オブジェクトです。つまり、文字列オブジェクトが作成されると、その値は変更できません。ただし、文字列内の特定の文字または文字列を置換する必要がある状況が発生する場合があります。現時点では、Java の String クラスの replace() メソッドを使用して文字列置換を実装できます。 String クラスの replace() メソッドには 2 つのタイプがあります。

2wワード詳細説明文字列、yyds 2wワード詳細説明文字列、yyds Aug 24, 2023 pm 03:56 PM

皆さんこんにちは。今日は Java の基本知識である String についてお話します。 String クラスの重要性は言うまでもなく、バックエンド開発で最もよく使用されるクラスであるため、説明する必要があります。

OP Stackの構造的側面と機能の詳細な調査 OP Stackの構造的側面と機能の詳細な調査 Jan 18, 2024 pm 05:45 PM

OPStack は、Optimism Network の開発グループである Optimism Collective によってリリースされたオープンソースのブロックチェーン フレームワークです。これは、イーサリアム コミュニティとオプティミズム コミュニティの両方にとって重要なツールです。 OPStack の主な目標は、オプティミズム ネットワークを強化し、オプティミズム メインネット、および今後のオプティミズム スーパーチェーンとそのガバナンス モデルに主要なソフトウェア ツールを提供することです。開発者指向の環境を提供することで、OPStack の中心となるアイデアは、イーサリアム領域の成長とイノベーションを促進することです。これにより、最先端の開発への道が開かれ、ブロックチェーンの作成がより簡単になります。 OPStac

See all articles