本篇文章给大家分享的是关于js中利用两个栈实现队列的算法,内容很不错,有需要的朋友可以参考一下,希望可以帮助到大家。
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
两个栈实现队列,那就是一个进一个出,且题中没说两个栈的长度限制,那么对于两个栈s1和s2来说,有两个注意的点:
s1.push时,若s2不为空且s1为空,为了保证正确的顺序,则将s2的元素全返入s1,然后再s1.push
s2.pop时,若s2为空且s1不为空,为了保证正确的顺序,则将s1的元素全放入s2,然后再s2.pop
var s1 = [], s2 = [];
function transferStack(a, b) {
while(a.length !== 0){
b.push(a.pop());
}
}
function push(val) {
if(s1.length === 0 && s2.length !== 0){
transferStack(s2, s1);
}
s1.push(val);
}
function pop(){
if(s1.length !== 0 && s2.length === 0){
transferStack(s1, s2);
}
return s2.pop();
}相关推荐:
以上就是js中利用两个栈实现队列的算法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号