雙向鍊錶的操作總結:
2.增加節點的操作:
push()會插入到top
unshift()會插入到bottom。
3.刪除節點的操作:
pop() 會刪除節點中的top元素、
shift() 會刪除節點中的bottom元素
4.定位操作:
bottom()、top()
5.特定節點的操作:
offsetexsits()、offsetget()、offsetset()、offsetunset()
<?php
$obj
=new spldoublylinkedlist();
$obj
->push(1);
$obj
->push(2);
$obj
->push(3);
$obj
->unshift(10);//在bottom新增
$obj
->shift(); //在bottom刪除
// $obj->pop();
$obj
->rewind();//在呼叫current等操作前需要呼叫rewind()
$obj
->next(); //從bottom到top
echo "current:"
.$obj
->current(); //current:2
$obj
->prev();
echo "current:"
.$obj
->current(); //current:1
$obj
->prev();
echo "current:"
.$obj
->current(); //current:(指向空節點)
具有先進後出特性的成為堆疊。splstack繼承自spldoublylinkedlist類、具有父類的一切方法。
注意點:
1.offset 中,0為top所在的節點。(offset總是最先出來的節點)
2.current() 在雙向鍊錶中指向bottom位置,在堆疊指向top位置。
3.next()在雙向鍊錶由bottom()指向top(),在堆疊中由top()指向bottom()
4.pop()從top刪除。同雙向鍊錶。
<?php
$stack
=new splstack();
$stack
->push("a");
$stack
->push("b");
$stack
->offsetset(0, "c");//b的值設為c
//遍歷堆疊
$stack
->rewind();
while ($stack
->valid())//1=>c 0=>a
$stack
->pop();
print_r($stack);//splstack object ( [flags:spldoublylinkedlist:private] => 6 [dllist:spldoublylinkedlist:private] => array ( [0] => a ) )
佇列和堆疊正好相反,最先進入佇列的元素會先出佇列。
模擬於排隊打飯,排到最前面的人總是最先能夠打到飯。
繼承自spldoublylinkedlist()
進入佇列:enqueue()進入佇列 dequeue()退出佇列
注意點:
1.offset 中,0為bottom所在的節點。(offset總是最先出來的節點)
2.current() 在雙向鍊錶中指向bottom位置,在佇列指向bottom位置。
3.next()在雙向鍊錶由bottom()指向top(),在佇列由bottom()指向top()。
4.dequeue()刪除bottom()節點。
<?php
$queue
=new splqueue();
$queue
->enqueue(1);
$queue
->enqueue(2);
$queue
->enqueue(3);
$queue
->dequeue();//1會退出佇列
$queue
->offsetset(0, "b");
$queue
->rewind();
echo "current:"
.$queue
->current();//b
SPL學習筆記(1) 概念
spl是standard php library的縮寫,他是用於解決常見問題的介面與類的集合。常見問題是什麼問題呢?1 資料建模 資料結構。解決資料如何儲存的問題。2 元素遍歷。資料如何檢視的問題。3 常用方法的統一呼叫。通用方法 陣列 集合的大小 自定義遍歷。4 類定義自動裝載。spl框架包括資料...
SPL學習筆記(1) 概念
一 什麼是spl spl是standard php library的縮寫,他是用於解決常見問題的介面與類的集合。常見問題是什麼問題呢?1 資料建模 資料結構。解決資料如何儲存的問題。2 元素遍歷。資料如何檢視的問題。3 常用方法的統一呼叫。通用方法 陣列 集合的大小 自定義遍歷。4 類定義自動裝載。...
SPL學習筆記(5) 函式的使用
一 autoload函式 i 為了例項化php中的類物件,需要通過一定的方法尋找到類的定義。通常情況下,類會定義在乙個單獨的檔案中。現在我們建立乙個資料夾libs,建立檔案 test.php和test.class.php libs test.php 和 libs test.class.php 和 i...