栈是一种遵从后进先出原则(LIFO,全称为Last In First Out)的有序集合。栈顶永远是最新的元素。
栈需要有如下的方法:
-
push(element(s)): 添加几个元素到栈顶
-
pop(): 移除并返回栈顶元素
-
peek(): 返回栈顶元素
-
isAmpty: 检查栈是否为空,为空则返回true
-
clear: 移除栈中所有元素
-
size: 返回栈中元素个数。
-
print: 以字符串显示栈中所有内容
function Stack() {
var items = [];
this.push = function(element) { items.push(element); };
this.pop = function() { return items.pop(); };
this.peek = function() { return items[items.length - 1]; }
this.isAmpty = function() { return items.length === 0 };
this.clear = function() { items = []; };
this.size = function() { return items.length; };
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.isAmpty()) { binaryString += remStack.pop().toString(); }
return binaryString; };
|