第四章棧(3)
阿新 • • 發佈:2018-11-02
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());
}