当前位置: 首页 > 后端技术 > Node.js

js数据结构-栈

时间:2023-04-03 18:55:22 Node.js

stack栈是一种后进先出(LIFO)的数据结构,一共有两个主要操作,即push和pop。看上图可以大致知道栈的特点:初始化:有一个连续的存储空间栈顶的长度入栈操作:向栈中加入一个新元素,栈顶向后移动指向到最新的数据地址已满,继续push,会抛出溢出错误pop操作:返回栈顶,将栈顶向前移动,指向上一个数据地址。如果栈中没有数据,继续pop,就会抛出下溢通过上面的特点,我们来看看js是如何实现一个栈类Stack{/***initialization*/constructor(max=100){//存储空间this.data=newArray(max);//最开始栈中没有数据,所以栈顶指向-1this.top=-1;//栈空间的大小this.max=max;}/***push操作*/push(x){if(this.top===this.max-1){throw'overflow';}//压入一条新数据,栈顶指针也向后移动一位,指向最新的数据地址this.top++;//添加新数据到栈中this.data[this.top]=x;}/***弹出操作*/pop(){if(this.top===-1){throw'underflow'}//获取栈顶数据constx=this.data[this.top];这个.top--;返回x;}/***获取栈的长度*/getlength(){returnthis.top+1}}通过上面的代码演示,大家应该对栈有了一个大概的了解,后面会继续介绍其他数据结构,可能会介绍如何使用栈来实现其他数据结构,以及数据结构的一些应用。前端同学在数据结构和算法复杂度上可能比其他语言的工程师略弱,但这些对于深度学习的前端仍然非常重要。最后,如果文章中有不对或错误的地方,欢迎留言指正。