一、栈的定义
一种后进先出的数据结构。
- 栈顶是个闭口,能够放入元素即 push(),移除元素即 pop()。
- 栈底关闭,不能操作元素。
二、栈的办法
三、js 实现栈的办法
// 创立一个函数结构器,用来创建对象
var Stack = function(){
// 能够以数组模仿栈,首元素为栈底, 尾元素为栈顶
var items = []
// 入栈 从栈顶进入一个元素
this.push = function(element){return items.push(element)
}
// 出栈 从栈顶移除一个元素
this.pop = function(){return items.pop()
}
//peek 查看栈顶元素
this.peek = function(){return items[items.length - 1]
}
// 查看栈有多少个元素
this.size = function(){return items.length}
// 判断栈是否为空
this.isEmpty = function(){return items.length == 0}
// 清空栈
this.clear = function(){items = []
}
// 查看数组
this.getItems = function(){return items}
}
三、实例演战
- 将十进制转换为二进制
代码如下:
// 接下面代码
// 申明定义一个函数,用来十进制转换二进制![QQ 截图 20200730124609.png](/img/bVbKuix)
var transform = function(number){
// 创立一个 Stack 对象
var dtb = new Stack()
var string = ''
// 将 number 除 2 失去的余数,放入到栈顶,也就是数组尾元素
while(number > 0){
var remainder = number % 2
dtb.push(remainder)
number = Math.floor(number / 2)
}
// 判断栈是否为空, 不为空则移除栈顶元素。while(!dtb.isEmpty()){
// 把移除的栈顶元素拼接成一个字符串
string += dtb.pop()}
return string
}
运行后果