title: 数据结构与算法-栈
date: 2020-06-10 16:20:09
tags:
- 数据结构与算法
1,JS的数组结构,可以直接调用API(编程题考察的一般都是数组,所以JS基础最重要,数组的操作需要进行十分熟练)
数组的插入和删除是比较麻烦,原因是需要不断的移动数据。但是,数组通过下标查询以及修改元素的时候,效率是很高的。
除了数组,其他的结构都是自己构造出来的,一般是利用对象加指针进行实现。(比如树就是递归出来的)
2,栈结构(是要自己实现的?)
因为栈的特点是先进后出,且进出都在一个位置操作,那么基于数组实现就是只操作数组尾部数据,也就是push与pop(那么队列就是unshift与pop或者shift与push)
//基于数组实现栈,外部是栈,内部是数组
<script>
//栈的封装实现,利用数组的push和pop,始终都在数组尾部进行操作(就符合了栈的特性)
function Stack(){
//属性
this.items = []
//操作
//1,压栈,尾部添加
Stack.prototype.push = function(element){
//需要传参,下面的不用
this.items.push