电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

PHP如何通過帶尾指針的鏈表實現(xiàn)'隊列'

瀏覽:114日期:2022-09-08 18:38:53

這篇文章是展示通過 PHP 語言實現(xiàn)一種帶 尾指針 的鏈表,然后通過鏈表來實現(xiàn)隊列,其中鏈表的頭元素 head 是用于列隊 出隊 的,它的時間復(fù)雜度 O(1) ,若在 head 的基礎(chǔ)上實現(xiàn)鏈表尾部 入隊 時間度為 O(n),為了降低入隊操作的時間復(fù)雜度,可以給鏈表維護一個帶有尾指針的變量 tail ,這樣每次入隊的時候直接操作 tail ,出隊的時候直接操作 head ,這樣可以使得 入隊 和 出隊 時間復(fù)雜度都是 O(1)。

1.output_queue_by_liked_list.php

這是一個演示打印輸出結(jié)果的文件:

<?phprequire ’QueueByLinkedList.php’;$queue = new QueueByLinkedList();$queue->enqueue('rr'); //入隊$queue->enqueue('tt'); //入隊$queue->enqueue('yy'); //入隊$queue->enqueue('uu'); //入隊$queue->enqueue('ii'); //入隊$queue->enqueue('oo'); //入隊echo $queue->toString(); //打印 rr->tt->yy->uu->ii->oo->nullecho '<br>';echo $queue->dequeue(); //出隊 打印 rrecho '<br>';echo $queue->dequeue(); //出隊 打印 ttecho '<br>';echo $queue->dequeue(); //出隊 打印 yyecho '<br>';echo $queue->toString(); //打印 uu->ii->oo->nullecho '<br>';$queue->enqueue('11'); //入隊$queue->enqueue('22'); //入隊$queue->enqueue('33'); //入隊$queue->enqueue('44'); //入隊$queue->enqueue('55'); //入隊$queue->enqueue('66'); //入隊echo '<br>';echo $queue->toString(); //打印 uu->ii->oo->11->22->33->44->55->66->null

2.QueueByLinkedList 類

這是通過帶尾指針鏈表實現(xiàn)的 隊列 類,它里面有 入隊(enqueue) 方法和 出隊(dequque) 方法 :

<?phprequire ’Queue.php’;/** * 帶有尾指針的鏈表 * Class LinkedListTail */class QueueByLinkedList implements Queue{ private $head; //鏈表頭部 private $tail; //鏈表尾部 private $size; //鏈表大小 /** * 構(gòu)造函數(shù) 初始化鏈表 * QueueByLinkedList constructor. */ public function __construct() { $this->head = null; $this->tail = null; $this->size = 0; } /** * 入隊操作 * @param $e */ public function enqueue($e): void { if ($this->tail == null) { $this->tail = $this->head = new Node($e, null); } else { $node = new Node($e, null); $this->tail->next = $node; $this->tail = $node; } $this->size++; } /** * 出隊操作 * @return mixed */ public function dequeue() { if ($this->size == 0) { return '隊列已經(jīng)是空的'; } $node = $this->head; $this->head = $node->next; $this->size--; if ($node->next == null) { $this->tail = null; } return $node->e; } public function getFront() { if ($this->size == 0) { return '隊列已經(jīng)是空的'; } return $this->head->e; } public function getSize() { return $this->size; } /** * 判斷隊列是否為空 * @return bool */ public function isEmpty(): bool { return $this->size == 0; } public function toString() { $str = ''; for ($node = $this->head; $node != null; $node = $node->next) { $str .= $node->e . '->'; } $str .= 'null'; return $str; }}class Node{ public $e;//節(jié)點元素 public $next; //下個節(jié)點信息 /** * 構(gòu)造函數(shù) 設(shè)置節(jié)點信息 * Node constructor. * @param $e * @param $next */ public function __construct($e, $next) { $this->e = $e; $this->next = $next; }}

3.interface Queue

這里是 隊列 類一個實現(xiàn)接口,里面定義了一些函數(shù),繼承它之后,必須重構(gòu)里面的所有方法:

<?phpinterface Queue{ public function enqueue($e): void;//入隊 public function dequeue();//出隊 public function getFront();//獲取前端元素 public function getSize();//獲取隊列大小 public function isEmpty();//判斷隊列是否為空}

以上就是PHP如何通過帶尾指針的鏈表實現(xiàn)’隊列’的詳細內(nèi)容,更多關(guān)于PHP 實現(xiàn)隊列的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: PHP
主站蜘蛛池模板: 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 挨踢网-大家的导航!| 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 空冷器|空气冷却器|空水冷却器-无锡赛迪森机械有限公司[官网] | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | SMN-1/SMN-A ABB抽屉开关柜触头夹紧力检测仪-SMN-B/SMN-C-上海徐吉 | 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 加盟店-品牌招商加盟-创业项目商机平台| 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | 首页 - 张店继勇软件开发工作室 兰州UPS电源,兰州山特UPS-兰州万胜商贸 | 高博医疗集团上海阿特蒙医院 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 至顶网 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 南昌旅行社_南昌国际旅行社_南昌国旅在线| 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 中医中药治疗血小板减少-石家庄血液病肿瘤门诊部 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 蜜蜂职场文库_职场求职面试实用的范文资料大全 | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 |