隊列這種數據結構更簡單,就像我們生活中排隊一樣,它的特性是先進先出(FIFO)。
創新互聯建站專注于周寧網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供周寧營銷型網站建設,周寧網站制作、周寧網頁設計、周寧網站官網定制、成都小程序開發服務,打造周寧網絡公司原創品牌,更為您提供周寧網站排名全網營銷落地服務。
PHP
SPL中SplQueue類就是實現隊列操作,和棧一樣,它也可以繼承雙鏈表(SplDoublyLinkedList)輕松實現。
SplQueue類摘要如下:
SplQueue簡單使用如下:
復制代碼
代碼如下:
$queue
=
new
SplQueue();
/**
*
可見隊列和雙鏈表的區別就是IteratorMode改變了而已,棧的IteratorMode只能為:
*
(1)SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_KEEP
(默認值,迭代后數據保存)
*
(2)SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_DELETE
(迭代后數據刪除)
*/
$queue-setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_DELETE);
//SplQueue::enqueue()其實就是
SplDoublyLinkedList::push()
$queue-enqueue('a');
$queue-enqueue('b');
$queue-enqueue('c');
//SplQueue::dequeue()其實就是
SplDoublyLinkedList::shift()
print_r($queue-dequeue());
foreach($queue
as
$item)
{
echo
$item
.
PHP_EOL;
}
print_r($queue);
而優先隊列SplPriorityQueue是基于堆(后文介紹)實現的。
SplPriorityQueue的類摘要如下:
SplPriorityQueue簡單使用:
$pq
=
new
SplPriorityQueue();
$pq-insert('a',
10);
$pq-insert('b',
1);
$pq-insert('c',
8);
echo
$pq-count()
.PHP_EOL;
//3
echo
$pq-current()
.
PHP_EOL;
//a
/**
*
設置元素出隊模式
*
SplPriorityQueue::EXTR_DATA
僅提取值
*
SplPriorityQueue::EXTR_PRIORITY
僅提取優先級
*
SplPriorityQueue::EXTR_BOTH
提取數組包含值和優先級
*/
$pq-setExtractFlags(SplPriorityQueue::EXTR_DATA);
while($pq-valid())
{
print_r($pq-current());
//a
c
b
$pq-next();
}
數據結構是在整個計算機科學與技術領域上廣泛被使用的術語。它用來反映一個數據的內部構成,即一個數據由那些成分數據構成,以什么方式構成,呈什么結構。數據結構有邏輯上的數據結構和物理上的數據結構之分。邏輯上的數據結構反映成分數據之間的邏輯關系,而物理上的數據結構反映成分數據在計算機內部的存儲安排。數據結構是數據存在的形式。 數據結構是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對應,通過這組算法集合可以對數據結構中的數據進行某種操作。
使用php實現的基本的數據結構和算法,什么二叉樹、二叉搜索樹、AVL樹、B樹、鏈表和常見排序、搜索算法等等,而且全部是使用面向對象來實現的,確是是很強。
借用“短發人”的數據,手工完善一下。
boolean (布爾型) 一般用于判斷,true或false。比如是否檢測,是否完成,是否畢業等。
integer (整型)一般用于年齡,數量等沒有小數點的計算。比如1 2 33 -9等。
float (浮點型, 也稱作 double) 一般用于金錢,面積、體積等科學,含小數點的計算。比如3.1415926585897932
string (字符串)一般用于人名,物品等常規字符串。比如“張三”“桌子”“我來了”
array (數組)一般用于復雜數據處理,可以多維數據結構,可以放布爾、整型、浮點、字符、數組等。
object (對象) 一般用于面向對象,里面包含方法和變量。
標題名稱:常見數據結構php 常見數據結構有集合
本文網址:http://www.2m8n56k.cn/article24/dojehje.html
成都網站建設公司_創新互聯,為您提供動態網站、搜索引擎優化、小程序開發、做網站、Google、品牌網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯