算法笔记-PHP实现队列的操作
- <?php
- /**
- * 队列 链表实现
- *
- * Class QueueOnLinkedList
- */
- class QueueOnLinkedList
- {
- /**
- * 队列头节点
- *
- * @var SingleLinkedListNode
- */
- public $head;
- /**
- * 队列尾节点
- *
- * @var null
- */
- public $tail;
- /**
- * 队列长度
- *
- * @var int
- */
- public $length;
- /**
- * QueueOnLinkedList constructor.
- */
- public function __construct()
- {
- $this->head = new SingleLinkedListNode();
- $this->tail = $this->head;
- $this->length = ;
- }
- /**
- * 入队
- *
- * @param $data
- */
- public function enqueue($data)
- {
- $newNode = new SingleLinkedListNode();
- $newNode->data = $data;
- $this->tail->next = $newNode;
- $this->tail = $newNode;
- $this->length++;
- }
- /**
- * 出队
- *
- * @return SingleLinkedListNode|bool|null
- */
- public function dequeue()
- {
- if ( == $this->length) {
- return false;
- }
- $node = $this->head->next;
- $this->head->next = $this->head->next->next;
- $this->length--;
- return $node;
- }
- /**
- * 获取队列长度
- *
- * @return int
- */
- public function getLength()
- {
- return $this->length;
- }
- /**
- * 打印队列
- */
- public function printSelf()
- {
- if ( == $this->length) {
- echo 'empty queue' . PHP_EOL;
- return;
- }
- echo 'head.next -> ';
- $curNode = $this->head;
- while ($curNode->next) {
- echo $curNode->next->data . ' -> ';
- $curNode = $curNode->next;
- }
- echo 'NULL' . PHP_EOL;
- }
- }
调用:
- <?php
- $queue = new QueueOnLinkedList();
- $queue->enqueue();
- $queue->enqueue();
- $queue->enqueue();
- $queue->enqueue();
- $queue->enqueue();
- $queue->printSelf();
- var_dump($queue->getLength());
- $queue->dequeue();
- $queue->printSelf();
- $queue->dequeue();
- $queue->dequeue();
- $queue->dequeue();
- $queue->printSelf();
- $queue->dequeue();
- $queue->printSelf();
运行:
算法笔记-PHP实现队列的操作的更多相关文章
- 算法笔记-PHP实现栈的操作
[栈]后进先出,先进后出,这就是典型的“栈”结构. 任何数据结构都是对特定应用场景的抽象,数组和链表虽然使用起来更加灵活,但却暴露了几乎所有的操作,难免会引发错误操作的风险. ...
- 算法笔记_064:蓝桥杯练习 操作格子(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 有n个格子,从左到右放成一排,编号为1-n. 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求 ...
- 算法笔记_071:SPFA算法简单介绍(Java)
目录 1 问题描述 2 解决方案 2.1 具体编码 1 问题描述 何为spfa(Shortest Path Faster Algorithm)算法? spfa算法功能:给定一个加权连通图,选取一个 ...
- 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)
Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...
- 算法笔记——C/C++语言基础篇(已完结)
开始系统学习算法,希望自己能够坚持下去,期间会把常用到的算法写进此博客,便于以后复习,同时希望能够给初学者提供一定的帮助,手敲难免存在错误,欢迎评论指正,共同学习.博客也可能会引用别人写的代码,如有引 ...
- kNN算法笔记
kNN算法笔记 标签(空格分隔): 机器学习 kNN是什么 kNN算法是k-NearestNeighbor算法,也就是k邻近算法.是监督学习的一种.所谓监督学习就是有训练数据,训练数据有label标好 ...
- 算法<初级> - 第二章 队列、栈、哈希表相关问题
算法 - 第二章 数据结构 题目一 用数组实现大小固定的队列和栈(一面题) 数组实现大小固定栈 /*** * size是对头索引(initSize是固定大小) 也是当前栈大小 * size=下个进队i ...
- CornerNet-Lite算法笔记
论文名称:CornerNet-Lite: Efficient Keypoint Based Object Detection 论文链接:https://arxiv.org/abs/1904.08900 ...
- 《算法笔记》之基础C/C++入门
开始进行算法笔记的学习,在此纪录下来,同时作为自己日后复习资料. 1.基本语法 #include <iostream> using namespace std; int main(){ c ...
随机推荐
- 如何利用office绘制施工进度计划横道图?
在Excel中利用“悬浮的条形图”可以制作简单的横道图.Step1 启动Excel,仿照图1的格式,制作一份表格,并将有关工序名称.开(完)工时间和工程持续时间等数据填入表格中. A1单元格中请不要输 ...
- MySQL设置只读模式
MySQL设置了主从复制,为保证数据一致性需要在从库设置只读状态 查看默认读写状态 show global variables like "%read_only%"; 设置只读 # ...
- poj3613 Cow Relays【好题】【最短路】【快速幂】
Cow Relays Time Limit: 1000MS Memory Limit: 65536K Total Submissions:9207 Accepted: 3604 Descrip ...
- 网龙“MAD技术论坛”在榕举办 200余位技术人才共话“改变教育”
9月16日,由网龙网络公司主办.msup协办的“MAD技术论坛”在榕举办,来自美国.香港.苏州等地的技术大牛受邀来到福州,围绕“Make a difference to education”这一论坛主 ...
- LUA 语言易混点
--代码: tab1 = { key1 = "val1", key2 = "val2","val2", "val3" , ...
- POJ 1451 - T9 - [字典树]
题目链接:http://bailian.openjudge.cn/practice/1451/ 总时间限制: 1000ms 内存限制: 65536kB 描述 Background A while ag ...
- POJ 2259 - Team Queue - [队列的邻接表]
题目链接:http://poj.org/problem?id=2259 Queues and Priority Queues are data structures which are known t ...
- [No000013E]用VSCode写python的正确姿势
最近在学习python,之前一直用notepad++作为编辑器,偶然发现了VScode便被它的颜值吸引.用过之后发现它启动快速,插件丰富,下载安装后几乎不用怎么配置就可以直接使用,而且还支持markd ...
- 【实战解析】基于HBase的大数据存储在京东的应用场景
京东技术 https://mp.weixin.qq.com/s?src=11×tamp=1551342955&ver=1455&signature=0hYp8OsxY ...
- extundelete fuser
[extundelete ] fuser -mv /dev/sda6 https://blog.csdn.net/xwl145/article/details/38896699 多列排序[sort]h ...