1. 程式人生 > >第四章棧(3)

第四章棧(3)

3.現實生活中棧的一個例子是佩茲糖果盒。想象一下你有一盒佩茲糖果,裡面塞滿了紅色、黃色和白色的糖果,
但是你不喜歡黃色的糖果。使用棧(有可能用到多個棧)寫一段程式,在不改變盒內其他糖果疊放順序的基礎上,

將黃色糖果移出。

let candyBox=new Stack();
candyBox.push('red');
candyBox.push('yellow');
candyBox.push('red');
candyBox.push('yellow');
candyBox.push('white');
candyBox.push('yellow');
candyBox.push('white');
candyBox.push('yellow');
candyBox.push('white');
candyBox.push('red');

function getCandy(ele,stack)
{
	let getCandyStack=new Stack();
	let tmpCandyStack=new Stack();

	while(!stack.isEmpty())
	{
		if(stack.peek()==ele.trim())
		{
			getCandyStack.push(ele);
			stack.pop();
		}else
		{
			tmpCandyStack.push(stack.pop());
		}
	}
	while(!tmpCandyStack.isEmpty())
	{
		stack.push(tmpCandyStack.pop());
	}
}

getCandy('yellow',candyBox);
console.log("移出後:");
while(!candyBox.isEmpty())
{
	
	console.log(candyBox.pop());
}