编程3:仅用递归函数和栈操作逆序一个栈

Posted 小林子奋斗的点滴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程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);

输出结果:

 

以上是关于编程3:仅用递归函数和栈操作逆序一个栈的主要内容,如果未能解决你的问题,请参考以下文章

栈仅用递归函数和栈操作逆序一个栈

1.3 仅用递归函数和栈操作逆序一个栈

仅用递归函数和栈操作逆序一个栈

仅用递归函数和栈操作逆序一个栈

如何仅用递归函数和栈操作逆序一个栈

[Daily]仅用递归函数和栈操作逆序一个栈