递归反转一个栈
2015-08-14 16:22
316 查看
递归反转一个栈,要求空间复杂度为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);
算法思想:汉诺塔的思想 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);
相关文章推荐
- OS X Lion版 如果我忘记了我的账户密码 我该怎么办?
- MySQL 5.6 中 TIMESTAMP有那些变化
- 如何实现多线程下载文件
- Android中定时器的3种实现方法
- BZOJ1024
- hdu oj 1849 Rabbit and Grass
- 定时器
- 获取编译学习笔记 (十三)—— 外部中断
- asp.net mvc邮箱激活
- 有哪几种情况只能用intialization list 而不能用assignment
- net view
- Android国际化
- 关于蓝牙
- 《转》QT界面怎么使控件随窗口大小变化一直居中显示
- 基于Servlet、JSP、JDBC、MySQL登录模块(包括使用的过滤器和配置)
- GitHub指南
- SQL Server多表查询优化方案集锦
- PHP的内存泄露问题与垃圾回收
- UNIQUE KEY
- POJ 2406 Power Strings(KMP求最小循环节)