JS中數(shù)據(jù)結(jié)構(gòu)之棧的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)JS中數(shù)據(jù)結(jié)構(gòu)之棧的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司主營崇左網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),崇左h5小程序定制開發(fā)搭建,崇左網(wǎng)站營銷推廣歡迎崇左等地區(qū)企業(yè)咨詢

棧是一種高效的數(shù)據(jù)結(jié)構(gòu),因為數(shù)據(jù)只能在棧頂添加或刪除,所以這樣的操作很快,而且容易實現(xiàn)。

棧是一種特殊的列表,棧內(nèi)的元素只能通過列表的一端訪問,這一端稱為棧頂。棧被稱為一種后入先出(LIFO,last-in-first-out)的數(shù)據(jù)結(jié)構(gòu)。由于棧具有后入先出的特點,所以任何不在棧頂?shù)脑囟紵o法訪問。為了得到棧底的元 素,必須先拿掉上面的元素。

棧的實現(xiàn)

用數(shù)組 dataStore 保存棧內(nèi)元素,構(gòu)造函數(shù)將其初始化為一個空數(shù)組。變量 top 記錄 棧頂位置,被構(gòu)造函數(shù)初始化為 0,表示棧頂對應(yīng)數(shù)組的起始位置 0。如果有元素被壓入 棧,該變量的值將隨之變化。

function Stack() {
  this.dataStore = [];
  this.top = 0;
  this.push = push;
  this.pop = pop;
  this.peek = peek;
}

push() 方法:當(dāng)向棧中壓入一個新元素時,需要將其保存在數(shù)組中變量 top 所對應(yīng)的位置,然后將 top 值加 1,讓其指向數(shù)組中下一個空位置。

function push(element) {
  this.dataStore[this.top++] = element;
}

pop() 方法:與 push() 方法相反——它返回棧頂元素,同時將變量 top 的值減 1

function pop() {
  return this.dataStore[--this.top];
}

peek() 方法:返回數(shù)組的第 top-1 個位置的元素,即棧頂元素。如果對一個空棧調(diào)用 peek() 方法,結(jié)果為 undefined。這是因為棧是空的,棧頂沒有任何 元素。

pop() 方法雖然可以訪問棧頂?shù)脑?,但是調(diào)用該方法后,棧頂元素也從棧中被永久性地刪除了。peek() 方法則只返回棧頂元素,而不刪除它。

function peek() {
  return this.dataStore[this.top-1];
}

length() 方法:通過返回變量 top 值的方式返回棧 內(nèi)的元素個數(shù)

function length() {
  return this.top;
}

clear()方法:將變量 top 的值設(shè)為 0,清空棧

function clear() {
  this.top = 0;
}

感謝各位的閱讀!關(guān)于“JS中數(shù)據(jù)結(jié)構(gòu)之棧的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

新聞名稱:JS中數(shù)據(jù)結(jié)構(gòu)之棧的示例分析-創(chuàng)新互聯(lián)
地址分享:http://muchs.cn/article32/cddspc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站營銷網(wǎng)站收錄、關(guān)鍵詞優(yōu)化網(wǎng)站建設(shè)、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司