function Stack() { this.top = 0; this.dataStore = []; this.push = push; this.pop = pop; this.peek = peek; this.length = length; this.clear = clear; this.toString = toString; }; //push压栈 function push(element) { this.dataStore[this.top++] = element; }; //pop出栈 function pop() { return this.dataStore[--this.top]; }; //peek查询栈顶元素 function peek() { return this.dataStore[this.top-1]; }; //length返回栈内元素个数 function length() { return this.top; }; //clear清空栈内元素 function clear() { this.top = 0;};
var sweetBox = new Stack(); sweetBox.push('red'); sweetBox.push('yellow'); sweetBox.push('red'); sweetBox.push('yellow'); sweetBox.push('red'); sweetBox.push('white'); sweetBox.push('yellow'); sweetBox.push('white'); sweetBox.push('yellow'); sweetBox.push('white'); sweetBox.push('red'); //取出不喜欢的颜色 get function getColor(element,stack) { var getColorStack = new Stack(); var setColorStack = new Stack(); while(stack.length()>0){ if(stack.peek() == element){ getColorStack.push(element); stack.pop(); }else{ setColorStack.push(stack.peek()); stack.pop(); } } while (setColorStack.length()>0){ stack.push(setColorStack.peek()); setColorStack.pop(); } console.log(stack.peek()); } getColor('red',sweetBox);
javascript数据结构(栈)解决佩兹糖果盒问题
最新推荐文章于 2023-06-10 10:19:17 发布