ホームページ  >  記事  >  バックエンド開発  >  PHP ダブルリンクリスト (SplDoublyLinkedList) の紹介と使用例_PHP チュートリアル

PHP ダブルリンクリスト (SplDoublyLinkedList) の紹介と使用例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:53:38859ブラウズ

PHPダブルリンクリスト(SplDoublyLinkedList)の導入と使用例

この記事では主にPHPダブルリンクリスト(SplDoublyLinkedList)の導入と使用例に関する関連情報を紹介しますので、必要な方は参考にしてください

二重リンクリストは重要な線形ストレージ構造であり、二重リンクリスト内の各ノードについて、それ自体の情報を保存するだけでなく、先行ノードと後続ノードのアドレスも保存します。

PHP SPL の SplDoublyLinkedList クラスは、二重リンク リストの操作を提供します。

SplDoublyLinkedListクラスの概要は以下の通りです。

?

使い方も簡単です

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

SplDoublyLinkedList は Iterator 、 ArrayAccess 、 Countable を実装します {

パブリック __construct (無効)

public void add (mixed $index ,mixed $newval )

//二重リンクリストのヘッドノード

パブリックミックストップ(無効)

//二重リンクリストの末尾ノード

公開ミックスボトム(void)

//double テーブル要素の数

public int カウント (void)

//二重リンクリストが空かどうかを確認します

パブリックブールはEmpty (無効)

//現在のノードインデックス

公開混合鍵(無効)

//前のレコードに移動

公開無効前 (無効)

//次のレコードに移動

パブリックボイドネクスト(void)

//現在の記録

公共混流(無効)

//ポインタを反復の先頭に向けます

パブリックボイド巻き戻し(ボイド)

//二重リンクリストにノードがまだあるかどうかを確認します

パブリックブール有効(無効)

// 指定されたインデックスのノードが存在するかどうか

public bool offsetExists (mixed $index)

//指定されたインデックスのノード値を取得します

パブリック混合オフセットGet (混合 $index )

//指定されたインデックスに値を設定します

public void offsetSet (mixed $index ,mixed $newval )

//指定されたインデックスにあるノードを削除します

public void offsetUnset (mixed $index)

//二重リンクリストの末尾から要素をポップします

パブリックミックスポップ(無効)

//二重リンクリストの末尾に要素を追加します

パブリック void プッシュ (混合 $value)

//シリアル化されたストレージ

パブリック文字列シリアル化(void)

//逆シリアル化

public void unserialize (string $serialized)

//反復モードを設定します

public void setIteratorMode (int $mode)

//反復モードを取得 SplDoublyLinkedList::IT_MODE_LIFO (スタック スタイル) SplDoublyLinkedList::IT_MODE_FIFO (キュー スタイル)

public int getIteratorMode (void)

//二重リンクリストの先頭から要素を削除します

公開混合シフト(無効)

//二重リンクリストの先頭に要素を追加します

public void unshift (混合 $value)

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

$list = 新しい SplDoublyLinkedList();

$list->push('a');

$list->push('b');

$list->push('c');

$list->unshift('top');

$list->shift();

print_r(array(

'ポップ' => $list->pop(),

'カウント' =>$list->count(),

'isEmpty' => $list->isEmpty(),

'ボトム' => $list->bottom(),

'トップ' =>$list->top()

));

$list->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO);

print_r($list->getIteratorMode());

for($list->rewind(); $list->valid(); $list->next()) {

echo $list->current().PHP_EOL;

}

print_r($a = $list->serialize());

//print_r($list->unserialize($a));

$list->offsetSet(0,'新しいもの');

$list->offsetUnset(0);

print_r(array(

'offsetExists' => $list->offsetExists(4),

'offsetGet' => $list->offsetGet(0),

));

print_r($list);

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1000107.html技術記事 PHP Double Linked List (SplDoublyLinkedList) の紹介と使用例 この記事では、PHP Double Linked List (SplDoublyLinkedList) の紹介と使用例を中心に紹介しますので、必要な方は参考にしてください...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。