栈 是一种遵从 后进先出(LIFO)原则的有序集合。就像一摞盘子。
push 添加一个元素到栈顶
pop 移除并返回栈顶的元素
peek 返回栈顶元素
isEmpty 如果栈里没有任何元素,返回true,否则返回false。
clear 移除栈里的所有元素
size 返回元素的个数
function Stack() { var items=[]; this.push=function(ele){ items.push(ele); } this.pop=function(){ return items.pop(); } this.peek=function(){ return items[items.length-1]; } this.isEmpty=function () { return items.length==0; } this.size=function () { return this.length; } this.clear=function () { items=[]; } this.print=function () { console.log(items.toString()); } }
转换为二进制
function divideBy2(decNumber) { var remStack=new Stack(),rem,binaryString=""; while (decNumber>0) { rem=Math.floor(decNumber%2); remStack.push(rem); decNumber=Math.floor(decNumber/2); } while(!remStack.isEmpty()){ binaryString+=remStack.pop().toString(); } return binaryString; }
转换为任意进制
function baseConverter(decNumber,base) { var remStack=new Stack(),rem,binaryString="",digits="0123456789ABCDEF"; while (decNumber>0) { rem=Math.floor(decNumber%base); remStack.push(rem); decNumber=Math.floor(decNumber/base); } while(!remStack.isEmpty()){ binaryString+=digits[remStack.pop()]; } return binaryString; }