SPL學習筆記(2) 類的實現

2021-07-09 18:20:48 字數 2441 閱讀 5846

雙向鍊錶的操作總結:

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...