程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 雙鏈表(SplDoublyLinkedList)簡介和使用實例

PHP 雙鏈表(SplDoublyLinkedList)簡介和使用實例

編輯:關於PHP編程

       這篇文章主要介紹了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 implements Iterator , ArrayAccess , Countable {   public __construct ( void ) public void add ( mixed $index , mixed $newval ) //雙鏈表的頭部節點 public mixed top ( void ) //雙鏈表的尾部節點 public mixed bottom ( void ) //雙聯表元素的個數 public int count ( void ) //檢測雙鏈表是否為空 public bool isEmpty ( void )     //當前節點索引 public mixed key ( void ) //移到上條記錄 public void prev ( void ) //移到下條記錄 public void next ( void ) //當前記錄 public mixed current ( void ) //將指針指向迭代開始處 public void rewind ( void ) //檢查雙鏈表是否還有節點 public bool valid ( void )   //指定index處節點是否存在 public bool offsetExists ( mixed $index ) //獲取指定index處節點值 public mixed offsetGet ( mixed $index ) //設置指定index處值 public void offsetSet ( mixed $index , mixed $newval ) //刪除指定index處節點 public void offsetUnset ( mixed $index )   //從雙鏈表的尾部彈出元素 public mixed pop ( void ) //添加元素到雙鏈表的尾部 public void push ( mixed $value )   //序列化存儲 public string serialize ( void ) //反序列化 public void unserialize ( string $serialized )   //設置迭代模式 public void setIteratorMode ( int $mode ) //獲取迭代模式SplDoublyLinkedList::IT_MODE_LIFO (Stack style) SplDoublyLinkedList::IT_MODE_FIFO (Queue style) public int getIteratorMode ( void )   //雙鏈表的頭部移除元素 public mixed shift ( void ) //雙鏈表的頭部添加元素 public void unshift ( mixed $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 = new SplDoublyLinkedList(); $list->push('a'); $list->push('b'); $list->push('c');   $list->unshift('top'); $list->shift();   print_r(array( 'pop' => $list->pop(), 'count' => $list->count(), 'isEmpty' => $list->isEmpty(), 'bottom' => $list->bottom(), 'top' => $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,'new one'); $list->offsetUnset(0); print_r(array( 'offsetExists' => $list->offsetExists(4), 'offsetGet' => $list->offsetGet(0),   )); print_r($list);
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved