Fork me on GitHub

algorithm/stack/stack_banner

栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保留在栈的末尾,称为栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都靠近栈底。

定义一个栈类

使用构造函数来定义一个栈类:

1
2
3
function Stack (){
// 各种属性和方法的声明
}

这里定义的存放的数据结构是数组。var item = []

入栈

数组本身就有方法push进来一个内容,这里也是使用这个方法,我们来写一下:

1
2
3
function push(element){
items.push(element);
}

出栈

pop也是数组的方法,表示出栈,这里也是使用pop为函数名:

1
2
3
function pop(){
return items.pop();
}

完整代码

还有方法,比如返回栈顶元素,检查是否是空栈等。这里不展开讲,下面全列出代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function Stack() {

// 定义存储的数据结构
var items = [];

// 入栈,返回新的数组
this.push = function(element) {
items.push(element);
};

// 出栈,弹出栈顶元素
this.pop = function() {
return item.pop();
};

// 获取栈顶元素
this.peek = function() {
return items[items.length-1];
};

// 检查是否是空栈
this.isEmpty = function() {
return items.length == 0;
};

// 栈元素的个数
this.size = function() {
return items.length;
};

// 展示栈的元素
this.print = function() {
console.log(items.toString());
};

}

更多的代码请看https://github.com/reng99/algorithm

<-- 本文已结束  感谢您阅读 -->
客官,且步,赏一个呗 (@ ~ @)