首頁  >  文章  >  後端開發  >  PHP雙向佇列實作程式碼

PHP雙向佇列實作程式碼

WBOY
WBOY原創
2016-07-25 09:13:11975瀏覽

1,什么是双向队列

deque,全名double-ended queue,是一种具有队列和栈的性质的数据结构。 双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。 双向队列(双端队列)就像是一个队列,但是可以在任何一端添加或移除元素。

参考:http://zh.wikipedia.org/zh-cn/%E5%8F%8C%E7%AB%AF%E9%98%9F%E5%88%97

2,php实现双向队列的代码

  1. class DoubleQueue

  2. {
  3. public $queue = array();
  4. /**(尾部)入队 **/
  5. public function addLast($value)
  6. {
  7. return array_push($this->queue,$value);
  8. }
  9. /**(尾部)出队**/
  10. public function removeLast()
  11. {
  12. return array_pop($this->queue);
  13. }
  14. /**(头部)入队**/
  15. public function addFirst($value)
  16. {
  17. return array_unshift($this->queue,$value);
  18. }
  19. /**(头部)出队**/
  20. public function removeFirst()
  21. {
  22. return array_shift($this->queue);
  23. }
  24. /**清空队列**/
  25. public function makeEmpty()
  26. {
  27. unset($this->queue);
  28. }
  29. /**获取列头**/
  30. public function getFirst()
  31. {
  32. return reset($this->queue);
  33. }

  34. /** 获取列尾 **/

  35. public function getLast()
  36. {
  37. return end($this->queue);
  38. }

  39. /** 获取长度 **/

  40. public function getLength()
  41. {
  42. return count($this->queue);
  43. }
  44. }

复制代码


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn