觅风论坛

标题: 分享一个php队列类 [打印本页]

作者: punycode    时间: 2023-8-10 16:34
标题: 分享一个php队列类
简单分析一个php实现的队列管理,可用于序列任务执行等等。

  1. <?php

  2. class phpQueue
  3. {
  4.     protected $front;//队头
  5.     protected $rear;//队尾
  6.     protected $queue = [
  7.         '0' => '队尾'
  8.     ];//存储队列
  9.     protected $maxsize;//最大数

  10.     public function __construct($size)
  11.     {
  12.         $this->initQ($size);
  13.     }

  14.     //初始化队列
  15.     private function initQ($size)
  16.     {
  17.         $this->front = 0;
  18.         $this->rear = 0;
  19.         $this->maxsize = $size;
  20.     }

  21.     //判断队空
  22.     public function QIsEmpty()
  23.     {
  24.         return $this->front === $this->rear;
  25.     }

  26.     //判断队满
  27.     public function QIsFull()
  28.     {
  29.         return ($this->front - $this->rear) === $this->maxsize;
  30.     }

  31.     //获取队首数据
  32.     public function getFrontDate()
  33.     {
  34.         echo "当前队首:".$this->queue[$this->front]."<br>";
  35.     }

  36.     //入队
  37.     public function InQ($data)
  38.     {
  39.         if ($this->QIsFull()) {
  40.             echo $data . ":我一来咋就满了!(队满不能入队,请等待!)<br>";
  41.         } else {
  42.             $this->front++;
  43.             for ($i = $this->front; $i > $this->rear; $i--) {
  44.                 if ($this->queue[$i]) {
  45.                     unset($this->queue[$i]);
  46.                 }
  47.                 $this->queue[$i] = $this->queue[$i - 1];
  48.             }
  49.             $this->queue[$this->rear + 1] = $data;
  50.             echo $data . '入队成功!<br>';
  51.         }
  52.     }

  53.     //出队
  54.     public function OutQ()
  55.     {
  56.         if ($this->QIsEmpty()) {
  57.             echo "队空不能出队!<br>";
  58.         } else {
  59.             echo $this->queue[$this->front]."出队成功!<br>";
  60.             unset($this->queue[$this->front]);
  61.             $this->front--;
  62.         }
  63.     }
  64. }

  65. $q = new queue(3);
  66. $q->InQ("路人A");
  67. $q->InQ('路人B');
  68. $q->InQ('路人C');
  69. $q->getFrontDate();
  70. $q->InQ('路人D');
  71. $q->OutQ();
  72. $q->InQ("路人E");
  73. $q->OutQ();
  74. $q->OutQ();
  75. $q->OutQ();
  76. $q->OutQ();
复制代码
上述代码的运行结果如下:
  1. 路人A成功!
  2. 路人B入队成功!
  3. 路人C入队成功!
  4. 当前队首:路人A
  5. 路人D:我一来咋就满了!(队满不能入队,请等待!)
  6. 路人A出队成功!
  7. 路人D入队成功!
  8. 路人B出队成功!
  9. 路人C出队成功!
  10. 路人D出队成功!
  11. 队空不能出队!
复制代码



作者: 桃子    时间: 2023-8-11 15:57
豆腐干士大夫
作者: 企鹅6655    时间: 2023-8-12 15:20
还不错觅风论坛欢迎你
作者: 企鹅6655    时间: 2023-8-13 14:43
看看看看看看看看看看看看
作者: 桃子    时间: 2023-8-14 14:07
支持你们一下下哈
作者: 好萌哦    时间: 2023-8-15 13:30
抢楼了,前排第一次啊
作者: 阿运    时间: 2023-8-15 18:14
我要下载试试,我要下载试试...
作者: 无敌少爷    时间: 2023-8-15 22:59
66666666666666666666
作者: 徐少    时间: 2023-8-16 03:43
嘻嘻不错支持一个
作者: 1225061801    时间: 2023-8-16 08:28
学习了,这就去试试
作者: lllll557    时间: 2023-8-16 13:12
非常不错,感谢分享!
作者: 13778890079    时间: 2023-8-17 19:12
感谢感谢分享
作者: 鸟文是帅逼    时间: 2023-8-19 01:12
觅风论坛需要你
作者: 443651433..    时间: 2023-8-20 07:12
666学习了!!
作者: 桃子    时间: 2023-8-21 13:12
我表示压力很大
作者: SDS    时间: 2023-8-22 19:12
碉堡了!
作者: tzq78789    时间: 2023-8-22 20:06
好好好好的我要下载看看看
作者: wang798403789    时间: 2023-8-22 21:01
不错不错 支持下
作者: a32d321as    时间: 2023-8-22 21:56
不错!顶LZ
作者: 星梦无痕    时间: 2023-8-22 22:50
赞一个!
作者: 中国好叔叔    时间: 2023-8-22 23:45
前来围观,LZ好样的!
作者: 6360120    时间: 2023-8-23 01:45
看看,到底好不好,想学学看看
作者: qazqaz    时间: 2023-8-23 03:45
谢谢楼主,,,收藏ing
作者: zxx736    时间: 2023-8-23 05:46
这个不错,谢谢共享
作者: 唉唉唉    时间: 2023-8-23 07:46
很不错的哦,支持,加油
作者: 唉唉唉    时间: 2023-8-23 09:46
碉堡了!
作者: 神话宝宝    时间: 2023-8-23 10:48
学习下  学习下  学习下
作者: 幻之灭    时间: 2023-8-23 11:51
还是看不懂,复杂
作者: 小一    时间: 2023-8-23 12:53
支持一下,期待更多东西
作者: 文杰    时间: 2023-8-23 13:55
很不错的哦,支持,加油
作者: 幻之灭    时间: 2023-8-23 14:57
必须支持。。。。。。。
作者: 216341564213    时间: 2023-8-23 15:56
666666666666666666666666
作者: 磊磊    时间: 2023-8-23 16:55
阿斯蒂芬撒反对
作者: qq1354596367    时间: 2023-8-23 17:54
学习了!!!!
作者: 444555    时间: 2023-8-23 18:53
谢谢楼主,,,收藏ing
作者: 佳佳    时间: 2023-8-23 19:52
感觉不错
作者: 骚年    时间: 2023-8-23 22:19
我要下载试试,我要下载试试...
作者: asd26297    时间: 2023-8-24 00:46
觅风论坛需要你
作者: 桃子    时间: 2023-8-24 03:13
期待中......
作者: qq1354596367    时间: 2023-8-24 05:40
顶一个了
作者: 小天    时间: 2023-8-24 08:07
看帖子的要发表下看法
作者: 我叫很钢    时间: 2023-8-24 10:38
我要下载试试,我要下载试试...
作者: 476572199    时间: 2023-8-24 13:09
来瞧瞧的,呵呵
作者: 476572199    时间: 2023-8-24 15:40
这就是传说中的好资源吗?赶紧看看去!
作者: q13129841235    时间: 2023-8-24 18:11
很给力。。。。很喜欢
作者: 我叫很钢    时间: 2023-8-24 20:41
感谢您的无私精神...
作者: qq1124824221    时间: 2023-8-25 03:01
感谢感谢分享
作者: zxcasd123c1    时间: 2023-8-25 09:21
谢谢大人的分享
作者: dsdasf    时间: 2023-8-25 15:41
鉴定完毕是个好资源
作者: 任逍遥    时间: 2023-8-25 22:01
看看看看看看看看看看看看
作者: dsdasf    时间: 2023-8-26 04:20
必须支持。。。。。。。
作者: qwe144184    时间: 2023-8-26 10:10
666666666666666666666666
作者: zxcasd123c1    时间: 2023-8-26 15:59
学习下  学习下  学习下
作者: qwe144184    时间: 2023-8-26 21:48
不错不错 支持下
作者: qwe144184    时间: 2023-8-27 03:37
我表示压力很大
作者: lloveyouko    时间: 2023-8-27 09:26
藕是来打酱油滴...




欢迎光临 觅风论坛 (https://www.eyyba.com/) Powered by Discuz! X3.4