栈的数据结构
- 栈是一种遵从后进先出原则的有序集合
- 新添加和要删除的元素都会在栈顶
- 新元素都会在栈顶,旧元素都会在栈底
创建基于javascript对象的栈
栈中的方法 | 描述 |
---|
push(element) | 向栈顶添加一个元素 |
pop() | 删除栈顶的元素 |
peek() | 返回栈顶的元素 |
isEmpty() | 判断栈里有没有元素,有就返回true,否则返回false |
clear() | 删除栈里所有的元素 |
size() | 返回栈里所有元素的个数 |
class Stack{
constructor(){
this.count = 0
this.items = {}
}
push(element){
this.items[this.count] = element
this.count++
}
pop(){
if(this.count === 0){
return undefined
}else{
let element = this.items[this.count]
delete this.items[this.count]
this.count--
return element
}
}
peek(){
return this.items[this.count-1]
}
isEmpty(){
return this.count === 0
}
clear(){
this.count = 0
this.items = {}
}
size(){
return this.count
}
toString(){
if(this.isEmpty()){
return undefined
}else{
let str = this.items[0]+""
for(let i=1,length=this.count;i<length;i++){
str = `${str},${this.items[i]}`
}
return str
}
}
toArray(){
let newArr = []
for(let i=0,length=this.count;i<length;i++){
newArr.push(this.items[i])
}
return newArr
}
}