& lt; php ?/* * ,*第二种——非循环顺序队列的实现方法 ,*此方法,对第一种实现方法进行了优化,出队时不再移动元素 ,*仅仅改变头指针的位置即可 ,* ,*此方法的优缺点: ,*,优点:插入和删除的时间复杂度都已是O(1),效率比较高 ,*,缺点:元素删除后,前面的空间就无法再进行利用,造成空间的浪费 ,* ,*/class SqQueue2 { ,,,private SqArr美元; ,,,private 前线;美元//指向队头元素 ,,,private 后美元;//如果队列不为空,则指向队尾元素的下一个位置 ,,,//对变量进行初始化 ,,,public function __construct () { ,,,,,,,这个→美元SqArr=array (); ,,,,,,,这个→美元面前=0; ,,,,,,,这个→美元后=0; ,,,} ,,,//销毁队列 ,,,public function DestroyQueue () { ,,,,,,,这个→美元SqArr=零; ,,,,,,,这个→美元面前=0; ,,,,,,,这个→美元后=0; ,,,} ,,,//清空队列 ,,,public function ClearQueue () { ,,,,,,,这个→美元SqArr=array (); ,,,,,,,这个→美元=$这→后方=0; ,,,} ,,,//判断队列是否为空 ,,,public function QueueEmpty () { ,,,,,,,如果($ this→前==$ this→后){ ,,,,,,,,,,,return “零”; ,,,,,,,其他}{ ,,,,,,,,,,,return “No 空”; ,,,,,,,} ,,,} ,,,//取得队头元素 ,,,public function GetHead () { ,,,,,,,如果($ this→front ==,这个→美元后){ ,,,,,,,,,,,return “错误”; ,,,,,,,} ,,,,,,,return $ this→SqArr ($ this→前); ,,,} ,,,//队列的长度 ,,,public function QueueLenghth () { ,,,,,,,return $ this→后——美元这→前线; ,,,} ,,,//从队尾插入元素 ,,,public function 排队(elem美元){ ,,,,,,,这个→美元SqArr ($ this→后+ +)=$ elem; ,,,} ,,,//从队头删除元素 ,,,public function 出列(){ ,,,,,,,如果($ this→前==$ this→后){ ,,,,,,,,,,,return “错误”; ,,,,,,,} ,,,,,,,设置($ this→SqArr [$ this→前]); ,,,,,,,这个→美元前+ +; ,,,,,,,return “OK”; ,,,} ,,,//遍历队列元素 ,,,public function QueueTraverse () { ,,,,,,,$ arr=数组(); ,,,,,,,,(i=这→美元面前;i<美元;这→美元后,美元我+ +){ ,,,,,,,,,,,arr[]=这→美元SqArr[我]美元; ,,,,,,,} ,,,,,,,return arr美元; ,,,} }