function stack() {
let top = () => null;
return {
push: (a) => {
let prevPop = top;
top = () => {
top = prevPop;
return a;
}
},
pop: () => top()
}
}
使用示例:
var s1 = stack() s1.push(1) s1.push(2) s1.push(3) s1.pop() //get 3 s1.pop() //get 22. 队列的过程化表示
function queue() {
let head = null
return {
add: (a) => {
let nextFun = null;
let newFun = (f) => {
if (f) {
(nextFun == null) ? (nextFun = f) : nextFun(f)
} else {
head = nextFun
return a
}
}
(head == null) ? (head = newFun) : head(newFun)
},
remove: () => head ? head(null) : null
};
}
使用示例:
var q = queue(); q.add(1) q.add(2) q.add(3) q.remove() //get 1 q.remove() //get 2



