javascript数据结构(栈)解决佩兹糖果盒问题

来源:互联网 发布:网络安全保密责任书 编辑:程序博客网 时间:2024/05/18 03:05
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');//取出不喜欢的颜色 getfunction 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);

0 0
原创粉丝点击