【剑指Offer】两个栈实现一个队列


两个栈倒腾一下,单个弹出,就可以了

<!DOCTYPE html>
<html>
<head>
<title>2stack to </title>
<meta charset="utf-8">
<script type="text/javascript">
var arr1= [];
var arr2= [];
//定义栈
function stack(arr){
this.push = function(element){
arr.push(element);
return arr;
}
this.out = function(){
arr.pop();
return arr;
}
this.outNum = function(){
var last = arr.pop();
return last;
}
this.size = function(){
returnarr.length;
}
this.getHead = function(){
return arr[0];
}
this.getRear = function(){
return arr[arr.length-1]
}

this.displayStack = function(){
// for(var i = 0; i<arr.length; i++){
// console.log();
// }
console.log(arr);
}
}
//创建一个对象,然后就可以调用封装好的方法
var newStack = new stack(arr1);
newStack.push(1);
newStack.push(2);
newStack.push(3);
newStack.push(4);
// console.log(arr1);
newStack.displayStack();//调用打印栈的方法
var len = newStack.size();//获取栈的大小

var newStack2 = new stack(arr2);
for(var i = 0; i <len; i++){//把第一个栈的内容弹出,依次压到第一个栈中
var temp = newStack.outNum();
newStack2.push(temp);
}
newStack2.displayStack();//打印第二个栈
</script>

</head>
<body>

</body>
</html>



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号