国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JS中數據結構之棧

2024-05-06 16:47:26
字體:
來源:轉載
供稿:網友

棧是一種高效的數據結構,因為數據只能在棧頂添加或刪除,所以這樣的操作很快,而且容易實現。

棧是一種特殊的列表,棧內的元素只能通過列表的一端訪問,這一端稱為棧頂。棧被稱為一種后入先出(LIFO,last-in-first-out)的數據結構。由于棧具有后入先出的特點,所以任何不在棧頂的元素都無法訪問。為了得到棧底的元 素,必須先拿掉上面的元素。

棧的實現

用數組 dataStore 保存棧內元素,構造函數將其初始化為一個空數組。變量 top 記錄 棧頂位置,被構造函數初始化為 0,表示棧頂對應數組的起始位置 0。如果有元素被壓入 棧,該變量的值將隨之變化。

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

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

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

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

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

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

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

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

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

function length() {  return this.top;}

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

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

使用棧解決問題舉例:判斷一個字符串是否是回文


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万载县| 航空| 平舆县| 昌黎县| 吴堡县| 长岛县| 广元市| 武平县| 尤溪县| 永泰县| 基隆市| 汉沽区| 永新县| 防城港市| 长海县| 巫山县| 麻栗坡县| 米泉市| 巴彦淖尔市| 板桥市| 饶阳县| 平乐县| 彭山县| 青川县| 临清市| 邹平县| 颍上县| 习水县| 胶南市| 双江| 冕宁县| 离岛区| 共和县| 中方县| 岳普湖县| 利津县| 那曲县| 西林县| 陵水| 邮箱| 永定县|