// 定义一个栈的类 实现栈的push pop getMax getMin等函数 // 并实现先进后出 后进先出 而且能够不断求出 当前栈里面的数据的最大值最小值classStack{constructor(){this.dataStack=[];this.maxStack=[];this.minStack=[];}// 入栈push(item){if(this.minStack.length<=0){this.minStack.push(item)}elseif(item<=this.getMin()){this.minStack.push(item)}if(this.maxStack.length<=0){this.maxStack.push(item)}elseif(item>=this.getMax()){this.maxStack.push(item)}this.dataStack.push(item);}// 出栈pop(){if(this.dataStack.length<=0){return}letvalue=this.dataStack.pop();if(value==this.getMin()){this.minStack.pop()}if(value==this.getMax()){this.maxStack.pop();}returnvalue;}// 求最小值getMin(){if(this.minStack.length<=0){return0;}returnthis.minStack[this.minStack.length-1];}// 求最大值getMax(){if(this.maxStack.length<=0){return0;}returnthis.maxStack[this.maxStack.length-1];}}// 创建栈的对象varstack=newStack();// 调用入栈stack.push(3);stack.push(5);stack.push(10);stack.push(7);stack.push(6);// 调用求最大值 最小值的函数console.log(stack.dataStack);console.log(stack.getMax());console.log(stack.getMin());// 出栈stack.pop();stack.pop();// 出栈后的最大值最小值console.log(stack.getMax());console.log(stack.getMin());console.log(stack.minStack);console.log(stack.maxStack);stack.pop();console.log(stack.getMax());console.log(stack.getMin());console.log(stack.minStack);console.log(stack.maxStack);stack.pop();console.log(stack.getMax());console.log(stack.getMin());console.log(stack.dataStack);console.log(stack.maxStack);stack.pop();console.log(stack.getMax());console.log(stack.getMin());console.log(stack.dataStack);console.log(stack.maxStack);
使用JS的类实现一个栈的类 并实现栈里面的常用API
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...