本篇内容介绍了“JS的算法与数据结构的介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
栈,又叫堆栈,是和列表类似的一种数据结构,但是却更高效,因为栈内的元素只能通过列表的一端访问,称为栈顶,数据只能在栈顶添加或删除,遵循先入后出(LIFO,last-in-first-out)的原则,普遍运用于计算机的方方面面。
对栈的操作主要有两种,一是将一个元素压入栈,push方法,另一个就是将栈顶元素出栈,pop方法。
除此之外,栈还有其他的一些属性和方法:查看当前栈顶的元素值,我们使用peek方法,它仅仅返回栈顶元素值,并不删除它;clear方法用于清空当前栈内的所有元素;top属性记录当前栈顶位置;length方法返回当前栈内元素总数等;接着我们定义栈的数据类型,并利用JS中的数组去实现它。
栈数据类型定义栈的实现//定义栈functionStack(){this.dataStore=[];//初始化为空this.top=0;//记录栈顶位置this.pop=pop;//出栈this.push=push;//入栈this.peek=peek;//查看栈顶元素this.length=length;//查看栈内元素总数this.clear=clear;//清空栈}
我们利用dataStore来保存栈内元素,初始化为空数组,top属性用于记录当前栈顶位置,初始化的时候为0,表示栈顶对应数组的起始位置是0,如果有元素入栈,则该属性会随之反生变化。
首先我们来实现一个入栈方法。
push:向栈内压入一个新的元素
该方法将一个新元素入栈,放到数组中top所对应的位置上,并将top的值加1,让其指向数组的下一个空位置functionpush(element){this.dataStore[this.top]=element;}
能入栈,就得可以出栈,接着我们来看出栈方法:
pop:取出栈顶元素
该方法与入栈相反,返回栈顶元素,并将top的值减1functionpop(){returnthis.dataStore[--this.top];}
如何查看栈顶元素呢,peek方法!
peek:查看栈顶元素
该方法返回的是栈顶元素,即top-1个位置元素functionpeek(){if(this.top>0)returnthis.dataStore[this.top-1];elsereturn'Empty';}
这里我做了个判断,如果一个空栈调用了peek方法,因为栈内没有任何元素,所以我这里返回了一个'Empty';
现在,我们已经有了基本的入栈、出栈、查看栈顶元素的方法。
“JS的算法与数据结构的介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。