首页 > 其他 > 详细

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

时间:2018-11-26 18:32:30      阅读:130      评论:0      收藏:0      [点我收藏+]
<?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:仅用递归函数和栈操作逆序一个栈

原文:https://www.cnblogs.com/xlzfdddd/p/10021886.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!