1. 程式人生 > >程式設計3:僅用遞迴函式和棧操作逆序一個棧

程式設計3:僅用遞迴函式和棧操作逆序一個棧

<?php
header("content-type:text/html;charset=utf-8");
/*
 * 僅用遞迴函式和棧操作逆序一個棧 P8
 */

function getAndRemoveLastElement(SplStack $stack){
    if($stack->isEmpty()){
        return false;
    }
    $value = $stack->pop();
    if($stack->isEmpty()){
        return $value;
    }
    else{
        
$last = getAndRemoveLastElement($stack); $stack->push($value); return $last; } } function reverse(SplStack $stack){ if($stack->isEmpty()){ return false; } else{ $value = getAndRemoveLastElement($stack); reverse($stack); $stack->push($value
); } } echo "原棧:"; echo "</br>"; $stack = new SplStack(); $stack->push(1); $stack->push(7); $stack->push(0); $stack->push(2); print_r($stack); echo "</br>"; echo "逆序後的棧:"; echo "</br>"; reverse($stack); print_r($stack);

輸出結果: