<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_66330"> <div class="blockcode"> <div id="code_Mp0"><ol> <li><?php<li>/**<li> * ユーザー: jifei<li> * 日付: 2013-07-30<li> * 時間: 23:12<li>*/<li>/**<li> * PHP は双方向キュー、両端キューを実装します <li> * 両端キュー (deque、フルネーム double-ended queue) は、キューとスタックのプロパティを持つデータ構造です。 <li> * 両端のキュー内の要素は両端からポップでき、挿入と削除の操作はキューの両側に制限されます。 <li>*/<li>class Deque<li>{<li> public $queue=array();<li> /**<li> * コンストラクターはキューを初期化します<li>*/<li> public function __construct($queue=array())<li> {<li> if(is_array($queue))<li> {<li> $this->queue=$queue;</li> <li> }</li> <li> }</li> <li> /**</li> <li> * 最初の要素を取得します </li> <li>*/</li> <li> public functionfront()</li> <li> {</li> <li> return reverse($this->queue);</li> <li> }</li> <li> /**</li> <li> * 最後の要素を取得します </li> <li>*/</li> <li> public function back()</li> <li> {</li> <li> return end($this->queue);</li> <li> }</li> <li> /**</li> <li> * 空かどうかを判断します</li> <li>*/</li> <li> public function is_empty()</li> <li> {</li> <li> return empty($this->queue);</li> <li> }</li> <li> /**</li> <li> * キューのサイズ </li> <li>*/</li> <li> public function size()</li> <li> {</li> <li> return count($this->queue);</li> <li> }</li> <li> /**</li> <li> * 最後まで挿入してください </li> <li>*/</li> <li> public function Push_back($val)</li> <li> {</li> <li> array_push($this->queue,$val);</li> <li> }</li> <li> / **</li> <li> *最後まで挿入してください</li> <li>*/</li> <li> public function Push_front($val)</li> <li> {</li> <li> array_unshift($this->queue,$val);</li> <li> }</li> <li> /**</li> <li> * 最後の要素を削除します </li> <li>*/</li> <li> public function Pop_back()</li> <li> { </li> <li> return array_pop($this->queue);</li> <li> }</li> <li> /**</li> <li> * 最初の要素を削除します</li> <li>*/</li> <li> public function Pop_front()</li> <li> {</li> <li> return array_shift($this->queue);</li> <li> }</li> <li> /**</li> <li> * キューをクリアします </li> <li>*/</li> <li> public function clear()</li> <li> {</li> <li> $this->queue=array();</li> <li> }</li> <li>}</li> <li>//初化一个双向队列</li> <li>$deque=new Deque(array(1,2,3, 4,5));</li> <li>echo $deque->size().PHP_EOL;</li> <li>echo $deque->is_empty().PHP_EOL;</li> <li>echo $deque->front().PHP_EOL;</li> <li>echo $deque- >back().PHP_EOL;</li> <li>echo PHP_EOL;</li> <li>//弹出元素测试</li> <li>echo $deque->pop_back().PHP_EOL;</li> <li>echo $deque->pop_front().PHP_EOL;</li> <li>echo $deque-> ;size().PHP_EOL;</li> <li>echo PHP_EOL;</li> <li>$deque->push_back('a').PHP_EOL;</li> <li>$deque->push_front(0).PHP_EOL;</li> <li>echo PHP_EOL;</li> <li>//插入测试</li> <li>echo $deque->front().PHP_EOL;</li> <li>echo $deque->back().PHP_EOL;</li> <li>echo $deque->size().PHP_EOL;</li> <li>echo PHP_EOL;</li> <li>//清空测试</li> <li>$deque- >clear();</li> <li>echo $deque->is_empty();</li> </ol></div> <em onclick="copycode($('code_Mp0'));">复制代</em> </div> <br> </td></tr></table> <div class="ptg mbm mtn"> PHP</div> <div id="comment_66330" class="cm"> </div> <div id="post_rate_div_66330"></div> <br><br>