中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

php實(shí)現(xiàn)的雙向隊(duì)列類實(shí)例
來(lái)源:易賢網(wǎng) 閱讀:970 次 日期:2014-09-29 12:05:31
溫馨提示:易賢網(wǎng)小編為您整理了“php實(shí)現(xiàn)的雙向隊(duì)列類實(shí)例”,方便廣大網(wǎng)友查閱!

本文實(shí)例講述了php實(shí)現(xiàn)的雙向隊(duì)列類及其用法,對(duì)于PHP數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí)有不錯(cuò)的參考價(jià)值。分享給大家供大家參考。具體分析如下:

(deque,全名double-ended queue)是一種具有隊(duì)列和棧的性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。雙向隊(duì)列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進(jìn)行。

在實(shí)際使用中,還可以有輸出受限的雙向隊(duì)列(即一個(gè)端點(diǎn)允許插入和刪除,另一個(gè)端點(diǎn)只允許插入的雙向隊(duì)列)和輸入受限的雙向隊(duì)列(即一個(gè)端點(diǎn)允許插入和刪除,另一個(gè)端點(diǎn)只允許刪除的雙向隊(duì)列)。而如果限定雙向隊(duì)列從某個(gè)端點(diǎn)插入的元素只能從該端點(diǎn)刪除,則該雙向隊(duì)列就蛻變?yōu)閮蓚€(gè)棧底相鄰的棧了。

DEQue.class.php類文件如下:

?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 <?php /** php 雙向隊(duì)列。支持限定隊(duì)列長(zhǎng)度,輸入受限,輸出受限,及輸出必須與輸入同端幾種設(shè)置 * Date: 2014-04-30 * Author: fdipzone * Ver: 1.0 * * Func: * public frontAdd 前端入列 * public frontRemove 前端出列 * public rearAdd 后端入列 * pulbic rearRemove 后端出列 * public clear 清空對(duì)列 * public isFull 判斷對(duì)列是否已滿 * private getLength 獲取對(duì)列長(zhǎng)度 * private setAddNum 記錄入列,輸出依賴輸入時(shí)調(diào)用 * private setRemoveNum 記錄出列,輸出依賴輸入時(shí)調(diào)用 * private checkRemove 檢查是否輸出依賴輸入 */ class DEQue{ // class start private $_queue = array(); // 對(duì)列 private $_maxLength = 0; // 對(duì)列最大長(zhǎng)度,0表示不限 private $_type = 0; // 對(duì)列類型 private $_frontNum = 0; // 前端插入的數(shù)量 private $_rearNum = 0; // 后端插入的數(shù)量 /** 初始化 * @param $type 對(duì)列類型 * 1:兩端均可輸入輸出 * 2:前端只能輸入,后端可輸入輸出 * 3:前端只能輸出,后端可輸入輸出 * 4:后端只能輸入,前端可輸入輸出 * 5:后端只能輸出,前端可輸入輸出 * 6:兩端均可輸入輸出,在哪端輸入只能從哪端輸出 * @param $maxlength 對(duì)列最大長(zhǎng)度 */ public function __construct($type=1, $maxlength=0){ $this->_type = in_array($type, array(1,2,3,4,5,6))? $type : 1; $this->_maxLength = intval($maxlength); } /** 前端入列 * @param Mixed $data 數(shù)據(jù) * @return boolean */ public function frontAdd($data=null){ if($this->_type==3){ // 前端輸入限制 return false; } if(isset($data) && !$this->isFull()){ array_unshift($this->_queue, $data); $this->setAddNum(1); return true; } return false; } /** 前端出列 * @return Array */ public function frontRemove(){ if($this->_type==2){ // 前端輸出限制 return null; } if(!$this->checkRemove(1)){ // 檢查是否依賴輸入 return null; } $data = null; if($this->getLength()>0){ $data = array_shift($this->_queue); $this->setRemoveNum(1); } return $data; } /** 后端入列 * @param Mixed $data 數(shù)據(jù) * @return boolean */ public function rearAdd($data=null){ if($this->_type==5){ // 后端輸入限制 return false; } if(isset($data) && !$this->isFull()){ array_push($this->_queue, $data); $this->setAddNum(2); return true; } return false; } /** 后端出列 * @return Array */ public function rearRemove(){ if($this->_type==4){ // 后端輸出限制 return null; } if(!$this->checkRemove(2)){ // 檢查是否依賴輸入 return null; } $data = null; if($this->getLength()>0){ $data = array_pop($this->_queue); $this->setRemoveNum(2); } return $data; } /** 清空對(duì)列 * @return boolean */ public function clear(){ $this->_queue = array(); $this->_frontNum = 0; $this->_rearNum = 0; return true; } /** 判斷對(duì)列是否已滿 * @return boolean */ public function isFull(){ $bIsFull = false; if($this->_maxLength!=0 && $this->_maxLength==$this->getLength()){ $bIsFull = true; } return $bIsFull; } /** 獲取當(dāng)前對(duì)列長(zhǎng)度 * @return int */ private function getLength(){ return count($this->_queue); } /** 記錄入列,輸出依賴輸入時(shí)調(diào)用 * @param int $endpoint 端點(diǎn) 1:front 2:rear */ private function setAddNum($endpoint){ if($this->_type==6){ if($endpoint==1){ $this->_frontNum ++; }else{ $this->_rearNum ++; } } } /** 記錄出列,輸出依賴輸入時(shí)調(diào)用 * @param int $endpoint 端點(diǎn) 1:front 2:rear */ private function setRemoveNum($endpoint){ if($this->_type==6){ if($endpoint==1){ $this->_frontNum --; }else{ $this->_rearNum --; } } } /** 檢查是否輸出依賴輸入 * @param int $endpoint 端點(diǎn) 1:front 2:rear */ private function checkRemove($endpoint){ if($this->_type==6){ if($endpoint==1){ return $this->_frontNum>0; }else{ return $this->_rearNum>0; } } return true; } } // class end ?>

demo.php示例代碼如下:

?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 <?php require "DEQue.class.php"; // 例子1 $obj = new DEQue(); // 前后端都可以輸入,無(wú)限長(zhǎng)度 $obj->frontAdd('a'); // 前端入列 $obj->rearAdd('b'); // 后端入列 $obj->frontAdd('c'); // 前端入列 $obj->rearAdd('d'); // 后端入列 // 入列后數(shù)組應(yīng)為 cabd $result = array(); $result[] = $obj->rearRemove(); // 后端出列 $result[] = $obj->rearRemove(); // 后端出列 $result[] = $obj->frontRemove(); // 前端出列 $result[] = $obj->frontRemove(); // 前端出列 print_r($result); // 出列順序應(yīng)為 dbca // 例子2 $obj = new DEQue(3, 5); // 前端只能輸出,后端可輸入輸出,最大長(zhǎng)度5 $insert = array(); $insert[] = $obj->rearAdd('a'); $insert[] = $obj->rearAdd('b'); $insert[] = $obj->frontAdd('c'); // 因前端只能輸出,因此這里會(huì)返回false $insert[] = $obj->rearAdd('d'); $insert[] = $obj->rearAdd('e'); $insert[] = $obj->rearAdd('f'); $insert[] = $obj->rearAdd('g'); // 超過(guò)長(zhǎng)度,返回false var_dump($insert); // 例子3 $obj = new DEQue(6); // 輸出依賴輸入 $obj->frontAdd('a'); $obj->frontAdd('b'); $obj->frontAdd('c'); $obj->rearAdd('d'); $result = array(); $result[] = $obj->rearRemove(); $result[] = $obj->rearRemove(); // 因?yàn)檩敵鲆蕾囕斎耄@個(gè)會(huì)返回NULL $result[] = $obj->frontRemove(); $result[] = $obj->frontRemove(); $result[] = $obj->frontRemove(); var_dump($result); ?>

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:php實(shí)現(xiàn)的雙向隊(duì)列類實(shí)例
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報(bào)班

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美一区二区免费视频| 91久久久在线| 玖玖精品视频| 欧美国产综合视频| 国产精品爱久久久久久久| 国产在线乱码一区二区三区| 亚洲二区在线观看| 日韩视频免费观看高清在线视频| 亚洲图片欧洲图片日韩av| 欧美精品在线观看| 国产精品日日做人人爱| 亚洲春色另类小说| 午夜国产不卡在线观看视频| 免费看亚洲片| 国产亚洲欧美一区| 夜夜爽www精品| 欧美成人精品1314www| 国产欧美婷婷中文| 亚洲视频1区| 免费欧美在线视频| 国产综合亚洲精品一区二| 亚洲一区精品电影| 欧美日韩mp4| 亚洲欧洲精品一区二区三区波多野1战4| 99精品国产在热久久婷婷| 另类av一区二区| 国内精品视频一区| 久久久久国产精品一区三寸| 国产精品久久久一区麻豆最新章节 | 巨乳诱惑日韩免费av| 国产精品入口福利| 一区二区高清视频| 欧美日韩喷水| 日韩性生活视频| 欧美精品久久久久久久| 亚洲欧洲视频在线| 欧美激情在线狂野欧美精品| 欧美一区日韩一区| 国产精品高潮粉嫩av| 9色porny自拍视频一区二区| 欧美精品一区视频| 在线亚洲国产精品网站| 国产精品99一区| 亚洲欧美日韩精品久久亚洲区| 国产精品成人在线观看| 亚洲欧美一区二区三区极速播放 | 麻豆精品视频在线观看| 在线观看成人小视频| 免费中文日韩| 99热免费精品| 国产精品嫩草影院av蜜臀| 欧美一区高清| 在线观看日韩一区| 欧美激情精品久久久久久变态| 一二三区精品| 国产亚洲一区二区精品| 欧美成人国产| 亚洲免费中文| 在线观看欧美成人| 国产精品qvod| 美女黄网久久| 亚洲免费人成在线视频观看| 黄色成人片子| 欧美日韩日日夜夜| 欧美专区亚洲专区| 亚洲精品美女久久7777777| 在线观看日韩专区| 欧美高清在线观看| 亚洲男人的天堂在线| 狠狠综合久久| 国产精品福利网| 久久亚洲欧洲| 午夜视频在线观看一区| 亚洲国产精品小视频| 国产精品亚洲а∨天堂免在线| 另类图片综合电影| 亚洲欧洲av一区二区| 亚洲黄色片网站| 国产欧美亚洲精品| 欧美日韩小视频| 美日韩精品免费| 午夜精品影院在线观看| 亚洲精品一级| 樱桃成人精品视频在线播放| 欧美性做爰猛烈叫床潮| 欧美国产91| 久久婷婷国产综合国色天香| 亚洲伊人一本大道中文字幕| 亚洲精品黄色| 伊人久久综合97精品| 国产日韩av在线播放| 欧美日韩一区二区视频在线观看| 久久这里有精品15一区二区三区| 欧美亚洲视频在线看网址| 久久激情网站| 亚洲欧美激情一区| 亚洲最快最全在线视频| 亚洲国产精品久久精品怡红院| 国产无一区二区| 国产伦精品一区二区三区免费| 欧美日韩亚洲一区二区三区在线 | aa级大片欧美三级| 激情综合中文娱乐网| 国产精品国产三级国产普通话蜜臀| 久久久久久高潮国产精品视| 午夜天堂精品久久久久| 亚洲香蕉在线观看| 宅男在线国产精品| 日韩亚洲精品在线| 亚洲欧洲免费视频| 亚洲经典自拍| 日韩视频免费看| 正在播放日韩| 亚洲永久网站| 亚洲欧美中日韩| 在线视频一区观看| 99国产精品久久| 亚洲一区二区三| 亚洲一区二区三区中文字幕在线 | 欧美激情成人在线| 久久亚洲精品欧美| 欧美 日韩 国产精品免费观看| 久久精品视频网| 欧美va天堂| 欧美日韩国产影片| 久久精品99国产精品| 欧美一区二区在线观看| 久久午夜精品| 久久国产免费看| 欧美成人亚洲成人日韩成人| 欧美日韩国产精品专区| 国产精品豆花视频| 精品成人国产| 亚洲欧美国产三级| 性做久久久久久免费观看欧美 | 国产精品免费看片| 国产视频久久久久| 亚洲高清视频的网址| 亚洲视屏一区| 亚洲综合三区| 欧美成人xxx| 国产精品地址| 在线精品高清中文字幕| 亚洲一区二区在线看| 久久久7777| 欧美日韩亚洲一区二区三区| 国产午夜精品麻豆| 亚洲黄页视频免费观看| 99在线热播精品免费99热| 亚洲欧美日韩系列| 欧美高清视频一二三区| 国产美女精品视频| 亚洲乱码国产乱码精品精98午夜| 日韩天堂av| 销魂美女一区二区三区视频在线| 看片网站欧美日韩| 国产精品久久久久久福利一牛影视 | 亚洲欧美制服另类日韩| 农夫在线精品视频免费观看| 国产精品一区免费在线观看| 亚洲福利久久| 亚洲影院免费| 欧美日韩精品在线| 亚洲国产精品第一区二区三区| 亚洲自拍偷拍视频| 欧美成人资源| 极品中文字幕一区| 欧美一区二区三区免费在线看| 在线精品视频一区二区| 亚洲欧美制服另类日韩| 欧美精品尤物在线| 最新国产成人在线观看| 欧美专区一区二区三区| 国产麻豆成人精品| 亚洲欧美综合国产精品一区| 国产精品成人aaaaa网站| 一区二区三区精品国产| 欧美成人性网| 亚洲国产精品久久人人爱蜜臀 | 国产亚洲成av人在线观看导航| 一区二区日本视频| 欧美成熟视频| 亚洲人妖在线| 欧美韩日一区| 99精品欧美| 国产精品女主播| 欧美一级片久久久久久久| 国产精品久久波多野结衣| 亚洲天堂av综合网| 欧美性淫爽ww久久久久无| 亚洲美女91| 欧美日韩系列| 亚洲免费伊人电影在线观看av| 欧美精品v国产精品v日韩精品| 亚洲激情在线| 欧美国产精品| 日韩天堂在线视频| 欧美女主播在线| 一本色道婷婷久久欧美| 国产精品日日摸夜夜摸av|