PHP 雙鏈表(SplDoublyLinkedList)簡介和使用實例
更新時間:2015年05月12日 09:37:52 投稿:junjie
這篇文章主要介紹了PHP 雙鏈表(SplDoublyLinkedList)簡介和使用實例的相關(guān)資料,需要的朋友可以參考下
雙鏈表是一種重要的線性存儲結(jié)構(gòu),對于雙鏈表中的每個節(jié)點,不僅僅存儲自己的信息,還要保存前驅(qū)和后繼節(jié)點的地址。

PHP SPL中的SplDoublyLinkedList類提供了對雙鏈表的操作。
SplDoublyLinkedList類摘要如下:
SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
public __construct ( void )
public void add ( mixed $index , mixed $newval )
//雙鏈表的頭部節(jié)點
public mixed top ( void )
//雙鏈表的尾部節(jié)點
public mixed bottom ( void )
//雙聯(lián)表元素的個數(shù)
public int count ( void )
//檢測雙鏈表是否為空
public bool isEmpty ( void )
//當(dāng)前節(jié)點索引
public mixed key ( void )
//移到上條記錄
public void prev ( void )
//移到下條記錄
public void next ( void )
//當(dāng)前記錄
public mixed current ( void )
//將指針指向迭代開始處
public void rewind ( void )
//檢查雙鏈表是否還有節(jié)點
public bool valid ( void )
//指定index處節(jié)點是否存在
public bool offsetExists ( mixed $index )
//獲取指定index處節(jié)點值
public mixed offsetGet ( mixed $index )
//設(shè)置指定index處值
public void offsetSet ( mixed $index , mixed $newval )
//刪除指定index處節(jié)點
public void offsetUnset ( mixed $index )
//從雙鏈表的尾部彈出元素
public mixed pop ( void )
//添加元素到雙鏈表的尾部
public void push ( mixed $value )
//序列化存儲
public string serialize ( void )
//反序列化
public void unserialize ( string $serialized )
//設(shè)置迭代模式
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 )
}
使用起來也是簡單
$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);
相關(guān)文章
php頁面,mysql數(shù)據(jù)庫轉(zhuǎn)utf-8亂碼,utf-8編碼問題總結(jié)
一個網(wǎng)站如果需要國際化,就需要將編碼從GB2312轉(zhuǎn)成UTF-8,其中有很多的問題需要注意,如果沒有轉(zhuǎn)換徹底,將會有很多的編碼問題出現(xiàn)!接下來通過本篇文章給大家分享php頁面,mysql數(shù)據(jù)庫轉(zhuǎn)utf-8亂碼,utf-8編碼問題總結(jié),需要的朋友可以參考下2015-08-08
修改apache配置文件去除thinkphp url中的index.php
這篇文章主要介紹了修改apache配置文件去除thinkphp url中的index.php的方法,大家參考使用吧2014-01-01
php中實現(xiàn)用數(shù)組嫵媚地生成要執(zhí)行的sql語句
這篇文章主要介紹了php中實現(xiàn)用數(shù)組嫵媚地生成要執(zhí)行的sql語句,本文直接給出代碼示例,需要的朋友可以參考下2015-07-07

