php 隊列(Queue)資料結構的實現代碼

來源:互聯網
上載者:User
本文介紹下,在php中實現隊列queue資料結構的一例代碼,是學習隊列操作的不錯的例子,有需要的朋友參考下吧。

什麼是隊列?隊列(Queue),是一種特殊的先進先出線性表,其只能在前端進行刪除操作(一般稱為出隊),在後端進行插入操作(一般稱為入隊)。進行刪除操作的端稱為隊頭,進行插入操作的端稱為隊尾。隊列,是按照先進先出或後進後出的原則組織資料。當隊列中沒有元素時,稱為空白隊列。

下面分享下,php實現的資料結構與演算法- 隊列(Queue)的代碼。

如下:

queue = array();    $this->size = 0;  }   /**   * 入隊操作。   *   * @param mixed $data 入隊資料。   * @return object 返回對象本身。   */  public function enqueue($data) {    $this->queue[$this->size++] = $data;     return $this;  }   /**   * 出隊操作。   *   * @return mixed 空隊列時返回FALSE,否則返回隊頭元素。   */  public function dequeue() {    if (!$this->isEmpty()) {      --$this->size;      $front = array_splice($this->queue, 0, 1);       return $front[0];    }     return FALSE;  }   /**   * 擷取隊列。   *   * @return array 返回整個隊列。   */  public function getQueue() {    return $this->queue;  }   /**   * 擷取隊頭元素。   *   * @return mixed 空隊列時返回FALSE,否則返回隊頭元素。   */  public function getFront() {    if (!$this->isEmpty()) {      return $this->queue[0];    }     return FALSE;  }   /**   * 擷取隊列的長度。   *   * @return integer 返回隊列的長度。   */  public function getSize() {    return $this->size;  }   /**   * 檢測隊列是否為空白。   *   * @return boolean 空隊列則返回TRUE,否則返回FALSE。   */  public function isEmpty() {    return 0 === $this->size;  }}?>

調用樣本:

enqueue(1)->enqueue(2)->enqueue(3)->enqueue(4)->enqueue(5)->enqueue(6);echo '
', print_r($queue->getQueue(), TRUE), '
'; $queue->dequeue();echo '
', print_r($queue->getQueue(), TRUE), '
';?>

說明:PHP數組函數已有類似隊列的功能函數存在:array_unshift(入隊)和、array_shift(出隊)。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.