美文网首页
算法 php实现

算法 php实现

作者: dongshixiao | 来源:发表于2019-08-13 09:51 被阅读0次
  • 循环队列
<?php
/**
 * php模拟循环队列
 * Class myQueue
 */
class myQueue
{
    public $arr = []; // int类型 队列数组
    public $front; // 队头索引
    public $rear; // 队尾索引
    public $count = 0; //数组现在长度
    public $max; //数组最大长度

    /**
     * 构造器
     * myQueue constructor.
     * @param int $num
     */
    public function __construct(int $num)
    {
        $this->max = $num; //数组最大长度
        $this->front = $num; // 队列头下标
        $this->rear = $num; // 队列尾下标
    }


    /**
     * 入队列
     * @param int $element
     * @throws Exception
     */
    public function in(int $element)
    {
        // 判断长度是否超出
        if ($this->count == $this->max) throw new Exception("长度溢出");
        $this->rear = ($this->rear + 1) % $this->max;
        $this->arr[$this->rear] = $element;
        $this->count++;
    }


    /**
     * 出队
     * @return mixed
     * @throws Exception
     */
    public function out(): int
    {
        if ($this->count == 0) throw new Exception("队列空了!");
        $this->front = ($this->front + 1) % $this->max;
        $element = $this->arr[$this->front];
        unset($this->arr[$this->front]);
        $this->count--;
        return $element;
    }
}


try {
    $queue = new myQueue(10);
    $queue->in(10);
    $queue->in(20);
    $queue->out();
    echo '<pre>';
    print_r($queue);
} catch (Exception $exception) {
    echo $exception->getMessage();
}

相关文章

  • 2018-08-02

    php实现组合枚举算法 源码

  • 常用的排序算法

    常用的排序算法(PHP实现)_慕课手记

  • 算法 php实现

    循环队列

  • 0.PHP面试都问什么

    PHP基础语法知识PHP底层原理常见的算法实现MysqlRedisHTTP原理fast-cgi常见的Linux命令...

  • php实现刮刮卡大转盘抽奖概率

    php实现刮刮卡大转盘抽奖概率 本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单...

  • 扣丁学堂PHP开发实现解汉诺塔问题及算法详解

    今天扣丁学堂PHP培训老师给大家介绍一下关于PHP实现的解汉诺塔问题及相应的实现算法,并结合实例形式给出了PHP具...

  • PHP队列实现算法

    此队列算法中有两个类一个是data类,这个类是存放数据;第二个是queue也就是队列类这个就是队列的一些操作。 首...

  • php 实现常见算法

    1.冒泡排序 2.快速排序 3.斐波那契额数列斐波那契数列:1 1 2 3 5 8 13 21 34 55 … 概...

  • 排序算法(PHP实现)

    冒泡排序 两两比较, 讲逆序的两个数交换位置 快速排序 选择一个基准元素, 讲数组里的数与之比较, 区分出比之大的...

  • php实现基础算法

    冒泡排序 算法思想:第一个数与第二个比较,第二个数与第三个数比较,第三个数与第四个比较....直到末尾 ,每次比较...

网友评论

      本文标题:算法 php实现

      本文链接:https://www.haomeiwen.com/subject/ymzmjctx.html