資料結構 使用2個棧實現一個佇列

Novice-XiaoSong發表於2020-11-18
function StackQueue(){
	// 陣列模擬棧,只能用push, pop方法
	let stack1 = [];	// 用於入隊
	let stack2 = [];	// 用於出隊
	this.size = 0;
	
	this.push= function(_item){
		stack1.push(_item);
		this.size++;
	}
	this.pop = function(){
		if(stack2.length <= 0){
			// 需要構建stack2,也就是將stack1的元素依次從棧頂pop並壓棧到stack2中
			let item;
			while(item = stack1.pop()){
				stack2.push(item);
			}
		}
		return stack2.pop();
	}
}

相關文章