日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

算法与数据结构题目的 PHP 实现:栈和队列 由两个栈组成的队列

發(fā)布時間:2025/5/22 php 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法与数据结构题目的 PHP 实现:栈和队列 由两个栈组成的队列 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

思路:同樣使用 PHP 的數(shù)組模擬棧。棧的特點是先進后出,隊列的特點是先進先出,可以用第一個棧(StackPush)作為壓入棧,壓入數(shù)據(jù)的時候只往這個棧中壓入數(shù)據(jù),第二個棧作(StackPop)為彈出棧,在彈出數(shù)據(jù)的時候只從這個棧中彈出。在彈出之前,把壓入棧的數(shù)據(jù)全部 彈出至 彈出棧,再把彈出棧的數(shù)據(jù)彈出。

代碼:

1 <?php 2 3 class TwoStacksQueue { 4 //壓入棧 5 private $StackPush = array(); 6 //彈出棧 7 private $StackPop = array(); 8 9 //壓入棧 壓入數(shù)據(jù) 10 public function add($pushInt) { 11 array_push($this->StackPush, $pushInt); 12 } 13 14 //將數(shù)據(jù)從壓入棧 倒入 彈出棧 15 public function poll() { 16 if (empty($this->StackPush) && empty($this->StackPop)) { 17 echo 'Queue is empty.'; 18 exit(); 19 } else if (empty($this->StackPop)) { 20 while (!empty($this->StackPush)) { 21 $pop = array_pop($this->StackPush); 22 array_push($this->StackPop, $pop); 23 } 24 } 25 } 26 27 //查看彈出棧的棧頂元素 28 public function peek() { 29 if (empty($this->StackPush) && empty($this->StackPop)) { 30 echo 'Queue is empty.'; 31 exit(); 32 } else if (empty($this->StackPop)) { 33 while (!empty($this->StackPush)) { 34 $pop = array_pop($this->StackPush); 35 array_push($this->StackPop, $pop); 36 } 37 } 38 $count = count($this->StackPop); 39 return $this->StackPop[$count - 1]; 40 } 41 42 //查看壓入棧 43 public function getStackPush() { 44 return $this->StackPush; 45 } 46 47 //查看彈出棧 48 public function getStackPop() { 49 return $this->StackPop; 50 } 51 } 52 53 $queue = new TwoStacksQueue(); 54 $queue->add(1); 55 $queue->add(2); 56 $queue->add(3); 57 $queue->add(4); 58 $queue->add(5); 59 var_dump($queue->getStackPush()); 60 $queue->poll(); 61 var_dump($queue->getStackPush()); 62 var_dump($queue->getStackPop()); 63 var_dump($queue->peek());

輸出:

array0 => int 11 => int 22 => int 33 => int 44 => int 5 arrayempty array0 => int 51 => int 42 => int 33 => int 24 => int 1 int 1

?

轉(zhuǎn)載于:https://www.cnblogs.com/dee0912/p/4912124.html

總結(jié)

以上是生活随笔為你收集整理的算法与数据结构题目的 PHP 实现:栈和队列 由两个栈组成的队列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。