摘要:棧是一種遵從后進(jìn)先出原則的有序集合。新添加的或待刪除的元素都保存在棧的末尾。稱作棧頂,另一端就叫棧底。在棧里,新元素都靠近棧頂,舊元素都靠近棧底。提供可操作的方法入棧出棧,但是會(huì)移掉棧中的數(shù)據(jù)。
棧是一種遵從后進(jìn)先出(LIFO)原則的有序集合。新添加的或待刪除的元素都保存在棧的末尾。稱作棧頂,另一端就叫棧底。在棧里,新元素都靠近棧頂,舊元素都靠近棧底。
javascript提供可操作的方法, 入棧 *push*, 出棧 pop,但是pop會(huì)移掉棧中的數(shù)據(jù)。
讓我們來(lái)用js數(shù)組的方法,來(lái)簡(jiǎn)單實(shí)現(xiàn)一個(gè)棧類:
peek(): 查看棧頂元素
clear(): 實(shí)現(xiàn)一個(gè)清理方法
size(): 棧內(nèi)元素總量查找
isEmpty(): 判斷棧是否為空
代碼如下:
function Stack() { var items = []; this.push = function(element){//添加一個(gè)(或幾個(gè))新元素到棧頂 items.push(element); }; this.pop = function(){//移除棧頂?shù)脑?,同時(shí)返回被移除元素 return items.pop(); }; this.peek = function(){//返回棧頂?shù)脑兀⒉粚?duì)棧做任何修改 return items[items.length-1]; }; this.isEmpty = function(){//如果棧內(nèi)沒(méi)有任何元素就返回true,否則返回false return items.length == 0; }; this.size = function(){//返回棧里的元素個(gè)數(shù) return items.length; }; this.clear = function(){//移除棧里的所有元素 items = []; }; this.print = function(){//打印 console.log(items.toString()); }; this.toString = function(){ return items.toString(); }; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/89256.html
摘要:之?dāng)?shù)組操作接下來(lái)就是數(shù)據(jù)結(jié)構(gòu)的第一部分,棧。以字符串顯示棧中所有內(nèi)容方法的實(shí)現(xiàn)說(shuō)明需要往棧中添加新元素,元素位置在隊(duì)列的末尾。的前端樂(lè)園原文鏈接寒假前端學(xué)習(xí)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,棧與隊(duì)列 本系列的第一篇文章: 學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(一),棧與隊(duì)列第二篇文章:學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(二):鏈表第三篇文章:學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(三):集合第...
摘要:筆者作為一位,將工作以來(lái)用到的各種優(yōu)秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識(shí)點(diǎn)大百科全書(shū)前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計(jì)算數(shù)組的極值技巧使你的更加專業(yè)前端掘金一個(gè)幫你提升技巧的收藏集。 CSS 樣式畫(huà)各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經(jīng)常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會(huì)用到。會(huì)持續(xù)更新… 一、...
摘要:筆者作為一位,將工作以來(lái)用到的各種優(yōu)秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識(shí)點(diǎn)大百科全書(shū)前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計(jì)算數(shù)組的極值技巧使你的更加專業(yè)前端掘金一個(gè)幫你提升技巧的收藏集。 CSS 樣式畫(huà)各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經(jīng)常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會(huì)用到。會(huì)持續(xù)更新… 一、...
摘要:棧內(nèi)存與堆內(nèi)存淺拷貝與深拷貝,可以說(shuō)是前端程序員的內(nèi)功,要知其然,知其所以然。棧內(nèi)存與堆內(nèi)存中的變量分為基本類型和引用類型。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 前言 想寫好前端,先練好內(nèi)功。 棧內(nèi)存與堆內(nèi)存 、淺拷貝與深拷貝,可以說(shuō)是前端程序員的內(nèi)功,要知其然,知其所以然。 筆者寫的 JavaScrip...
摘要:保護(hù)數(shù)據(jù)結(jié)構(gòu)內(nèi)部元素下劃線命名約定這只是一種約定,只能依賴于開(kāi)發(fā)人員具備的常識(shí)用的限定作用于實(shí)現(xiàn)類實(shí)現(xiàn)了假的私有屬性,雖然基本類型不可變,但由于新增的方法仍然能取到所有屬性,而且是數(shù)組的形式,但我們操作的是棧,不應(yīng)該出現(xiàn)這種行為。 棧是一種遵循后進(jìn)先出(ILFO)原則的有序集合,新添加或待刪除的元素都保存在棧的同一段,稱為棧頂,另一端就叫棧底。現(xiàn)實(shí)中很多例子采用了這種數(shù)據(jù)結(jié)構(gòu),比如一摞...
閱讀 2793·2023-04-26 03:00
閱讀 1572·2021-10-12 10:12
閱讀 4411·2021-09-22 15:33
閱讀 3096·2021-09-22 15:06
閱讀 1677·2019-08-30 15:44
閱讀 2280·2019-08-30 13:59
閱讀 656·2019-08-30 11:24
閱讀 2559·2019-08-29 17:07