一、数组结构
与其他语言相比js的数组的特性:
1.添加与删除比较麻烦些
2.查看与修改是很简单的
二、栈结构:一种受限的线性结构 规则:先进后出
实现的方法:
总的构造函数
class Stack {
constructor(array){
if(!array) array=[];
this._items=array;
}
push() 添加新的元素到栈顶
push(item){
this._items.push(item);
}
pop () 移除栈顶元素,并返回被移出的元素
pop(){
return this._items.pop();
}
peek()返回栈顶元素, 不做任何修改
peek(){
return this._items[this._items.length-1];
}
isEmpty() 判断是否为空,返回布尔值
isEmypt(){
return this._items.length===0;
}
size() 返回栈元素的个数
size(){
return this._items.length;
}
toString() 将栈内元素以字符串形式输出
toString(){
let arr=this._items.reverse();
return arr.join(",")
}
三、队列:一种受限的线性结构
enqueue() 添加新元素到队列中
enqueue(item){
this._items.push(item);
}
dequeue ()删除元素并返回
dequeue(){
return this._items.shift();
}
front()返回队列中的第一个元素
front(){
return this._items[0] || undefined //不存在返回undefined
}
isEmpty () 判断队列是否为空
isEmpty(){
return this._items===0
}
size() 返回队列元素的个数
size(){
return this._items.length;
}
toString() 将队列内元素以字符串形式输出
toString(){
let arr=this._items.reverse();
return arr.join(",")
}