2019-10-27
栈
栈是一种受限的线性表,后进先出(LIFO)
栈应用
函数栈
!递归容易爆栈
实现栈结构
基于数组的实现
//封装栈类
function Stact(){
//栈中的属性
this.items = [];
//栈的相关属性
//1.将元素压入栈
Stack.prototype.push = function(element){
this.items.push(element)
}
//2.从栈中取出元素
Stack.prototype.pop = function(){
return this.items.pop()
}
//3.查看一下栈顶元素
Stack.prototype.peek = function(){
return this.items[this.items.length -1]
}
//4.判断栈是否为空
Stack.prototype.isEmpth = funciton(){
return this.items.length == 0;
}
//5.判断栈中元素的个数
Stack.prototype.size = function(){
return this.items.length
}
//6.toString方法
Stack.prototype.toString = function(){
var resultString =
for(var i= 0;i<this.items.length;i++){
resultString += this.item[i]+' '
}
return resultString
}
}
//栈的使用
var s = new Stack();
s.push(1);
s.push(2);
s.pop(2);
alert(s);
//函数:将十进制转化成二进制
funciton dec2bin(decNumber){
//1.定义栈对象
var stack = new Stack();
//2.循环操作
while(decNumber > 0){
//2.1获取玉树,并且放入栈中
stack.push(decNumber % 2);
//2.2 获取整除后的结果,作为下一次运行的数字
decNumber = Math.floor(decNumber / 2);
}
//3.从栈中取出0和1
var binaryString = '';
while(!stack.isEmpth()){
binaryString += stack.pop();
}
return binaryString;
}
//测试
alert(1000);
队列结构
队列(Queue),它是一种受限的线性表,先进先出(FIFO)
队列类的创建
基于数组的实现