一、栈的定义
一种后进先出的数据结构。
- 栈顶是个闭口,能够放入元素即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 }}
三、实例演战
- 将十进制转换为二进制
代码如下:
//接下面代码//申明定义一个函数,用来十进制转换二进制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}
运行后果