栈的常见操作
push(ele):添加一个新元素到栈顶位置
pop():移除栈顶元素,同时返回被移除的元素
peek():返回栈顶元素,不对栈做任何修改
isEmpty():判断栈是否为空,返回布尔值
size():返回栈里元素的个数
toString():将栈结构的内容以字符形式返回
实现栈结构:
- 基于数组
//栈的封装
function Stack(){
this.items = [];
Stack.prototype.push = function(ele){
this.items.push(ele);
}
Stack.prototype.pop = function(){
this.items.pop();
}
Stack.prototype.peek = function(){
return this.items[this.items.kength-1];
}
Stack.prototype.isEmpty = function(){
return this.items.length == 0;
}
Stack.prototype.size = function(){
return this.items.length;
}
Stack.prototype.toString = function(){
var resultString = '';
for(var i = 0; i<this.items.length; i++){
resultString += this.items[i] + '';
}
return resultString;
}
}
//栈的使用
var stack = new Stack();
//十进制转二进制
function dec2bin(){
var stack = new Stack();
while(decNumber >0){
stack.push(decNumber % 2);
decNumber = Math.floor(decNumber / 2)
}
var binaryString = '';
while(!stack.isEmpty()) {
binaryString += stack.pop();
}
return binaryString;
}
- 基于链表
在这里插入代码片