日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

链式存储结构 php,【PHP 实现数据结构】链式队列

發布時間:2025/3/15 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链式存储结构 php,【PHP 实现数据结构】链式队列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是鏈式隊列

隊列是一種“先進先出”的存儲結構,是一種特殊的線性表,于它只允許在表的前端(front)進行刪除操作,而在表的后端(rear)進行插入操作。

通常隊列可以分為順序隊列和鏈式隊列兩種實現,

順序隊列顧名思義就是采用順序存儲,如以數組方式來實現,

鏈式隊列采用鏈式存儲,如以上篇說到的單向鏈表來實現,

鏈式隊列是以鏈式數據結構實現的隊列

隊列有兩個基本的操作,入隊列和出隊列

代碼實現

鏈式隊列實現方式多種多樣,可以以單鏈表,雙向鏈表,循環鏈表等各種方式來實現,這里以上篇提到的單鏈表的方式來實現。

require 'SingleLinkList.php';

/**

* Class Queue

* 隊列是一種“先進先出”的存儲結構,它只允許在隊頭進行刪除操作,而在隊尾進行插入操作

* 通常隊列可以分為順序隊列和鏈式隊列兩種實現

* 順序隊列顧名思義就是采用順序存儲,如以數組方式來實現

* 鏈式隊列采用鏈式存儲,如以上篇說到的單向鏈表來實現

*

* 隊列有兩個基本的操作,入隊列和出隊列

*/

class QueueImplementedBySingleLinkList extends SingleLinkList

{

/**

* Queue constructor.

* 構造函數,初始化隊列

*/

public function __construct()

{

parent::__construct();

}

/**

* 入隊

* @param $data

*/

public function enQueue($data)

{

$node = new Node($data);

parent::addNode($node);

}

/**

* 出隊

* @return mixed

* @throws Exception

*/

public function deQueue()

{

if ($this->isEmpty()) {

throw new Exception('隊列為空');

}

$node = parent::searchNodeByIndex(1);

parent::deleteNodeByIndex(1);

return $node->data;

}

/**

* 隊列是否為空

* @return bool

*/

public function isEmpty()

{

return $this->header->next == null;

}

}

示例

$queue = new QueueImplementedBySingleLinkList();

$queue->enQueue('1');

$queue->enQueue('2');

$queue->enQueue('3');

$queue->enQueue('4');

var_dump($queue);

echo '-----------', PHP_EOL;

$queue->deQueue();

$queue->deQueue();

var_dump($queue);

總結

以上是生活随笔為你收集整理的链式存储结构 php,【PHP 实现数据结构】链式队列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。