91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript中有哪些棧

發布時間:2022-07-01 13:48:33 來源:億速云 閱讀:132 作者:iii 欄目:web開發

這篇文章主要講解了“javascript中有哪些棧”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“javascript中有哪些棧”吧!

javascript中沒有棧,可以使用數組實現棧的所有功能;棧是一種后進先出的數據結構,似乎一種特殊的列表,任何不在棧頂的元素都無法訪問,需要先拿掉上面的元素,才能得到棧底的元素,例如可以利用push()將元素添加到棧頂。

本教程操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

javascript中有幾個棧

JavaScript中沒有棧,但是可以用數組實現棧的所有功能。

棧是一種線性結構,最大的特點就是先進后出,后進先出。

javascript中有哪些棧

入棧push():

javascript中有哪些棧

出棧pop():

javascript中有哪些棧

棧:

棧是一種和列表類似的數據結構,可以用它來解決很多的編程問題,棧是一種高效的數據結構,因為數據只能在棧的頂端添加或者刪除,所以這樣的操作很快而且容易實現。

  棧是一種特殊的列表,站內的元素只能拖過列表的一端進行訪問,這一端陳偉棧頂。一疊盤子是最常見的棧結構,只能從頂部取盤子,洗好的盤子也只能放在頂端。棧被稱為后入先出的數據結構。

  由于棧具有后入先出的特點,所以任何不在棧頂的元素都無法訪問。為了得到棧底的元素,必須拿掉上面的元素。

  對棧的操作有將一個元素壓入棧和將一個元素彈出棧。把元素壓入棧頂使用push()方法,從棧頂彈出元素使用pop()方法。還有一個方法是預覽棧頂元素,使用pop()方法雖然可以訪問棧頂的元素,但是調用該方法后棧頂的元素將被永久的刪除。peek()方法只返回棧頂的元素,而不刪除它。

  為了記錄棧頂元素的位置,同時也為了標記從哪里可以加入新元素,我們使用變量top,當向棧內壓入元素是該變量增大,從站內彈出元素時,該變量減小。

  pop(),push(),peek()方法是最主要的三個方法,同時定義clear()方法可以清楚棧內所有的元素,length屬性定義棧內元素的個數,同時定義一個empty屬性標識棧內是否還有元素,不過使用length屬性可以達到同樣的目的。

定義棧的操作

  棧作為一種特殊的列表,只能從一端來進行訪問,就像一摞盤子,放只能放在上面,拿也只能從上面拿,所以棧是一種先入后出的一種數據結構。因為棧的這種特點,棧中任意不在棧頂的元素都無法訪問,為了得到棧底的元素,必須把該元素之上的元素拿掉,把棧底的元素暴露在棧頂。棧還可以清空其內所有元素,也可以記錄棧內元素的個數。

  綜上,我們定義幾個操作棧的方法。

  • push()    把元素添加到棧頂

  • pop()     把元素從棧頂刪除

  • peek()    返回棧頂的元素

  • clear()    清空棧內元素

  • length()    棧內元素的個數

棧的實現

  實現棧,底層的數據結構采用數組,以定義棧的構造函數開始;

function Stack() {
    this.dataStore = [];         //用來保存棧內元素的數組
    this.top = 0;                   //top用來記錄棧頂位置,初始化為0
    this.push = push;
    this.pop = pop;
    this.peek = peek;
    this.clear = clear;
    this.length = length;
}

  接下來實現push(),pop(),peek(),clear()和length()。

push()方法是,當向棧頂添加一個新元素時,在數組的記錄棧頂的位置的top的位置添加這個值,添加完成top需要加1;

pop()正好與push()相反,需要top減1,但同時減1之后返回top位置的值,即已刪除元素;

peek()直接返回數組top-1位置的元素,即棧頂元素就可以了;

clear() 直接把top值賦為0,直接清空棧;

length()直接返回top的值,棧頂位置即棧內元素個數

function push(element) {
    this.dataStore[this.top++] = element;   // 先在top位置加入元素,之后top加1
}
function pop() {
    return this.dataStore[--this.top];   // top先減1,然后返回top位置的元素
}
function peek() {
    return this.dataStore[this.top - 1];
}
function clear() {
    this.top = 0;
}
function length() {
    return this.top;
}

感謝各位的閱讀,以上就是“javascript中有哪些棧”的內容了,經過本文的學習后,相信大家對javascript中有哪些棧這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

咸宁市| 西盟| 巴彦淖尔市| 大兴区| 闽清县| 诸城市| 通河县| 兴隆县| 巴中市| 遂平县| 夏津县| 城固县| 闵行区| 定边县| 宝应县| 高碑店市| 衡山县| 潼关县| 溆浦县| 涞源县| 平顶山市| 贵州省| 洪雅县| 米泉市| 牙克石市| 胶南市| 沅陵县| 平果县| 荔浦县| 北流市| 奉新县| 霍林郭勒市| 交城县| 英吉沙县| 孝义市| 津南区| 浪卡子县| 衡阳市| 石楼县| 雷山县| 黑龙江省|