javascript数据结构-桟

//satck构造函数

function Stack() {

this.items = [];

this.top = 0;

}

/*桟具有以下方法

push() 进栈

pop() 退栈

size() 栈大小

empty() 判断栈是否为空

peek() 返回栈顶元素

clear() 清空栈

*/

//给桟添加方法

Stack.prototype = {

constructor: Stack,

push: push,

pop: pop,

size: size,

empty: empty,

peek: peek,

clear: clear

}

function push() {

var item = [];

this.items[this.top++] = item;

}

function pop() {

if (this.top === 0) {

return;

} else {

var item = this.items[this.top - 1];

this.items.length = --this.top;

return item;

}

}

function size() {

return this.top

}

function empty() {

return this.top === 0;

}

function peek() {

return this.items[this.top - 1];

}

function clear() {

this.items = [];

this.top = 0;

}

//递归函数

function factorial(n) {

if (n === 0) {

return 1;

} else {

return n * factorial(n - 1);

}

}

factorial(5);

//桟的应用:递归函数

/*function factorial(n) {

var s = new Stack(),

result = 1;

while (n > 1) {

s.push(n--);

}

while (s.size() > 0) {

result *= s.pop()

}

return result;

}*/

你可能感兴趣的:(javascript数据结构-桟)