链式存储结构 php,【PHP 实现数据结构】链式队列
什么是鏈式隊列
隊列是一種“先進先出”的存儲結構,是一種特殊的線性表,于它只允許在表的前端(front)進行刪除操作,而在表的后端(rear)進行插入操作。
通常隊列可以分為順序隊列和鏈式隊列兩種實現(xiàn),
順序隊列顧名思義就是采用順序存儲,如以數(shù)組方式來實現(xiàn),
鏈式隊列采用鏈式存儲,如以上篇說到的單向鏈表來實現(xiàn),
鏈式隊列是以鏈式數(shù)據(jù)結構實現(xiàn)的隊列
隊列有兩個基本的操作,入隊列和出隊列
代碼實現(xiàn)
鏈式隊列實現(xiàn)方式多種多樣,可以以單鏈表,雙向鏈表,循環(huán)鏈表等各種方式來實現(xiàn),這里以上篇提到的單鏈表的方式來實現(xiàn)。
require 'SingleLinkList.php';
/**
* Class Queue
* 隊列是一種“先進先出”的存儲結構,它只允許在隊頭進行刪除操作,而在隊尾進行插入操作
* 通常隊列可以分為順序隊列和鏈式隊列兩種實現(xiàn)
* 順序隊列顧名思義就是采用順序存儲,如以數(shù)組方式來實現(xiàn)
* 鏈式隊列采用鏈式存儲,如以上篇說到的單向鏈表來實現(xiàn)
*
* 隊列有兩個基本的操作,入隊列和出隊列
*/
class QueueImplementedBySingleLinkList extends SingleLinkList
{
/**
* Queue constructor.
* 構造函數(shù),初始化隊列
*/
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 实现数据结构】链式队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux rsync 安装教程,lin
- 下一篇: php 中间表示语言,[转载]php 底