栈结构的概念
是一种“后进先出”的数据结构。
栈作用
栈操作
栈结构操作的方法
push():进栈
pop():出栈
peek():检查栈顶元素
isEmpty():是否为空
clear():清空栈
size():栈元素个数
js实现栈结构–数组
使用类封装栈操作
const Stack = function () {
const items = []; //私有的,只能在函数内部十使用,外部访问不到
// this.items = [];//共有的,外部可以访问
// push 栈顶添加元素
this.push = function (element) {
items.push(element)
}
// pop 栈顶移除元素
this.pop = function(){
// 这里使用 return 是为了返回删除的元素
return items.pop()
}
// peek 检查栈顶元素
this.peek = function(){
return items[items.length-1]
}
// isEmpty 栈是否为空(一般is开头命名的返回Boolean类型)
this.isEmpty = function(){
return items.length == 0
}
// clear 清空栈
this.clear = function(){
return items = [];
}
// size 栈元素个数
this.isEmpty = function(){
return items.length
}
// 检查items
this.getItems = function(){
return items
}
}
使用栈思想实现进制转化
// 使用栈思想实现进制转化
// 参数1 转化的进制数
// 参数2 需要转化为几进制
const binaryConversion = function(num,num2){
var stack = new Stack();
var str = '';
while(num>0){
stack.push(num % num2)
num = Math.floor( num / num2)
}
while(!stack.isEmpty()){
str += stack.pop();
}
return str;
}