这一部分还是集中聊一下数据结构,虽然我们日常工作中都在用,似乎并没有去思考这些内容,但是我们对这些东西也要有所了解。
数组
数组是平常工作中用的比较多的一种数据结构。这里就不做长篇大论了,主要得几个API熟练使用就可以了,push,pop,indexOf以及迭代方法等等,但是我觉得还是需要去多思考一下,某些场景下是否可以换成别的数据结构,效果是否会更好呢?可能我们平时的业务不会涉及到,但是也是需要去思考的一个问题。
栈
栈 是遵循后进先出原则的有序集合。新加入的元素在栈顶,旧的元素在栈低。通常情况下如果一个类class是栈,则它有以下属性及方法。
push(element(s)):添加一个(或几个)新元素到栈顶。
pop():移除栈顶的元素,同时返回被移除的元素。
peek():返回栈顶的元素,不对栈做任何修改(这个方法不会移除栈顶的元素,仅仅返 回它)。
isEmpty():如果栈里没有任何元素就返回true,否则返回false。
clear():移除栈里的所有元素。
size():返回栈里的元素个数。这个方法和数组的length属性很类似。
如何实现一个栈?
代码如下
class Stack { this.items = []; // push private push(element){ this.items.push(element) } // pop private pop(){ return this.items.pop() } // peak 栈顶元素 private peak(){ return this.items[this.items.length-1] } // size 栈的长度 private length(){ return this.items.length } // isEmpty 是否为空 private isEmpty(){ return this.items.length===0 } // clear 清空栈 private clear(){ this.items = [] } }
总结
数组和栈相对来说是比较简单的两种数据结构
借助数组的API可以非常容易的实现一个栈结构
但是栈结构在个人的工作中似乎并不经常出现
我是喜妹子,每篇文章尽量不超过1000字----欢迎关注,点赞,转发,评论。。。