递归反转一个栈,要求空间复杂度为1,不许重新申请一个同样的栈
算法思想:汉诺塔的思想
function ReserveStack(&$stack){ if(empty($stack)) return; $top = array_pop($stack); ReserveStack($stack); if(empty($stack)){ array_push($stack,$top); return; } $top2 = array_pop($stack); ReserveStack($stack); array_push($stack,$top); ReserveStack($stack); array_push($stack,$top2); } $test = array(3,1,5,6,7,9,10,2); ReserveStack($test); print_r($test);
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-27 08:44:35