数据结构与算法@佩兹糖果盒

概述

你有一盒佩兹糖果盒,里面塞满红、黄、白三中颜色的糖果,但是你不喜欢黄色口味的糖果。使用栈写一段程序,在不改变盒内其他糖果叠放顺序的基础上,将黄色糖果移出。

详述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function pez(num) {
// 原始糖盒
var box = new Stack();
// 糖的数组
var sugars = ["红", "黄", "白"];

// 模拟放置糖:根据数量创建糖,并且放到糖盒
for (var i = 0; i < num; i++) {
var random = Math.floor(Math.random() * 3);
box.push(sugars[random]);
}

console.log("筛选前顺序:" + box.dataStore);

// 辅助盒子
var buffer = new Stack();
// 筛选糖果
while (box.length() > 0) {
let sugar = box.pop();
if (sugar !== "黄") {
buffer.push(sugar);
}
}

// 清空数据
box.clear();

// 筛选后糖果依次放回原盒子
while (buffer.length() > 0) {
let sugar = buffer.pop();
box.push(sugar);
}
console.log("筛选后顺序:" + box.dataStore);
}

pez(20);

参考