无为清净楼资源网 Design By www.qnjia.com
这篇文章是展示通过 PHP
语言实现一种带 尾指针
的链表,然后通过链表来实现队列,其中链表的头元素 head
是用于列队 出队
的,它的时间复杂度 O(1)
,若在 head
的基础上实现链表尾部 入队
时间度为 O(n),为了降低入队操作的时间复杂度,可以给链表维护一个带有尾指针的变量 tail
,这样每次入队的时候直接操作 tail
,出队的时候直接操作 head
,这样可以使得 入队
和 出队
时间复杂度都是 O(1)。
1.output_queue_by_liked_list.php
这是一个演示打印输出结果的文件:
<"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->null echo "<br>"; echo $queue->dequeue(); //出队 打印 rr echo "<br>"; echo $queue->dequeue(); //出队 打印 tt echo "<br>"; echo $queue->dequeue(); //出队 打印 yy echo "<br>"; echo $queue->toString(); //打印 uu->ii->oo->null echo "<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 类
这是通过带尾指针链表实现的 队列
类,它里面有 入队(enqueue)
方法和 出队(dequque)
方法 :
<"队列已经是空的"; } $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 "队列已经是空的"; } 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;//节点元素 public $next; //下个节点信息 /** * 构造函数 设置节点信息 * Node constructor. * @param $e * @param $next */ public function __construct($e, $next) { $this->e = $e; $this->next = $next; } }
3.interface Queue
这里是 队列
类一个实现接口,里面定义了一些函数,继承它之后,必须重构里面的所有方法:
<?php interface Queue { public function enqueue($e): void;//入队 public function dequeue();//出队 public function getFront();//获取前端元素 public function getSize();//获取队列大小 public function isEmpty();//判断队列是否为空 }
以上就是PHP如何通过带尾指针的链表实现'队列'的详细内容,更多关于PHP 实现队列的资料请关注其它相关文章!
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
更新日志
2024年09月25日
2024年09月25日
- 纯音入心系列纯音乐《中央民族乐团-古筝传奇》1CD[MP3][253.1MB]
- 江玲.1989-这样你才爱我,是吗?【新作有声】【WAV+CUE】
- 郭美美.2010-我是郭美美【华纳】【WAV+CUE】
- 黄心懋1991-轻忧郁【滚石】【WAV+CUE】
- 群星.2000-大地金曲世纪回顾2CD【大地】【WAV+CUE】
- 王菲.1996-浮躁(2024环球MQA-UHQCD限量版)【环球】【WAV+CUE】
- 群星.2022-传家电视剧原声带【东阳欢娱】【FLAC分轨】
- 《摇滚教父 伍佰黄金精选 2CD》 [WAV+CUE][1GB]
- 《凤凰传奇 我从草原来》[WAV/分轨][400MB]
- 《叶倩文 真心真意过一生》[WAV+CUE][400MB]
- 潘越云.1985-世间女子(滚石25周年经典复刻版)【滚石】【WAV+CUE】
- 陈柏宇.2009-CANT.BE.HALF【SONY】【WAV+CUE】
- 李明依.1989-小女生【滚石】【WAV+CUE】
- 《李荣浩 新时代创作新人王》[WAV分轨][310MB]
- 《黑鸭子与马头琴 史上最动听草原音乐》[WAV+CUE][320MB]