最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

數(shù)據(jù)結(jié)構(gòu)TypeScript之棧和隊列詳解

 更新時間:2023年01月30日 10:01:30   作者:前端技術(shù)獺  
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)TypeScript之棧和隊列詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

棧結(jié)構(gòu)特點

線性表的其中一種,用于存儲固定順序的元素,元素增刪具有先進后出的特點。

出棧和入棧

在JavaScript中可以利用數(shù)組的pop()push()方法可以實現(xiàn)出棧入棧。操作如下:

let a = [1, 2, 3, 4, 5]
a.pop() // 出棧操作
console.log(a) // [1,2,3,4]
a.push(6) // 入棧操作
console.log(a)// [1,2,3,4,6]

面向?qū)ο蠓椒ǚ庋b棧

基于pop()push()數(shù)組方法。方法設(shè)計如下:

pop(): any:若棧不為空,將棧頂元素推出棧。

push(element: any): Stack:將元素推入棧里。

isEmpty(): boolean:判斷棧是否為空。

class Stack {
    length: number
    stack: any[]
    constructor() {
        this.length = 0
        this.stack = []
    }
    pop(): any {
        if (this.isEmpty()) {
            throw new Error('Stack is empty.')
        } else {
            return this.length-- && this.stack.pop()
        }
    }
    push(element: any): Stack {
        this.stack.push(element) && this.length++
        return this
    }
    isEmpty(): boolean {
        return this.length === 0
    }
}

隊列結(jié)構(gòu)特點

隊列線性表的其中一種,用于存儲固定順序的元素,元素增刪具有先進先出的特點。

出隊和入隊

在JavaScript中利用數(shù)組的shift()push()方法可以實現(xiàn)出隊入隊。操作如下:

let a = [1, 2, 3, 4, 5]
a.shift() // 出隊操作
console.log(a) // [2, 3, 4, 5]
a.push(6) // 入隊操作
console.log(a)// [2,3,4,5, 6]

面向?qū)ο蠓椒ǚ庋b隊列

基于shift()push()數(shù)組方法。方法設(shè)計如下:

dequeue(): any:若隊列不為空,將隊列首元素推出隊列。

enqueue(element: any): Queue:將元素推入隊列里。

isEmpty(): boolean:判斷隊列是否為空。

class Queue {
    length: number
    queue: any[]
    constructor() {
        this.length = 0
        this.queue = []
    }
    dequeue(): any {
        if (this.isEmpty()) {
            throw new Error('Queue is empty.')
        } else {
            return this.length-- && this.queue.shift()
        }
    }
    enqueue(element: any): Queue {
        this.queue.push(element) && this.length++
        return this
    }
    isEmpty(): boolean {
        return this.length === 0
    }
}

本文相關(guān)代碼已放置我的Github倉庫 ??

項目地址:

Algorithmlib|Stack

Algorithmlib|Queue

以上就是數(shù)據(jù)結(jié)構(gòu)TypeScript之棧和隊列詳解的詳細內(nèi)容,更多關(guān)于TypeScript數(shù)據(jù)結(jié)構(gòu)棧和隊列的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • js庫Modernizr的介紹和使用

    js庫Modernizr的介紹和使用

    Modernizr是一個開源的JS庫,它使得那些基于訪客瀏覽器的不同(指對新標準支持性的差異)而開發(fā)不同級別體驗的設(shè)計師的工作變得更為簡單
    2015-05-05
  • JavaScript可視化圖表庫D3.js API中文參考

    JavaScript可視化圖表庫D3.js API中文參考

    這篇文章主要介紹了JavaScript可視化圖表庫D3.js API中文參考,本文對常用的API給出一中文翻譯,需要的朋友可以參考下
    2015-01-01
  • TypeScript中的遞歸類型示例解析

    TypeScript中的遞歸類型示例解析

    這篇文章主要為大家介紹了TypeScript中的遞歸類型示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • FastAdmin表單驗證data-rule插件—Nice-validator的使用方法

    FastAdmin表單驗證data-rule插件—Nice-validator的使用方法

    FastAdmin的表單驗證data-rule非常方便,也很炫酷,采用的Nice-validator是一款非常強大的表單驗證插件,通過簡單在元素上配置規(guī)則,即可達到驗證的效果,怎么使用Nice-validator插件呢
    2023-09-09
  • layui中的layer彈出層自定義樣式更改背景

    layui中的layer彈出層自定義樣式更改背景

    layui中的layer彈出層有很多提示框,但是我們使用最多的應(yīng)該就幾種,layer.msg、layer.alert、layer.open、layer.load等。layer?有內(nèi)置的skin:layui-layer-lan,layui-layer-molv,可以直接使用。skin不僅允許你傳入layer內(nèi)置的樣式class名,可以自定義class名。
    2023-06-06
  • require.js使用方法的簡單代碼講解筆記

    require.js使用方法的簡單代碼講解筆記

    頁面需要加載多個js文件時,加載時瀏覽器會停止網(wǎng)頁渲染,加載文件越多,網(wǎng)頁失去響應(yīng)的時間就會越長;由于js文件之間存在依賴關(guān)系,必須嚴格保證加載順序,當(dāng)依賴關(guān)系很復(fù)雜的時候,代碼的編寫和維護都會變得困難。這種情況下require.js插件應(yīng)運而生。
    2022-12-12
  • TypeScript學(xué)習(xí)輕松玩轉(zhuǎn)類型操作

    TypeScript學(xué)習(xí)輕松玩轉(zhuǎn)類型操作

    這篇文章主要為大家介紹了TypeScript學(xué)習(xí)輕松玩轉(zhuǎn)類型操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Underscore.js常用方法總結(jié)

    Underscore.js常用方法總結(jié)

    這篇文章主要介紹了Underscore.js常用方法總結(jié),本文講解了Underscore.js概述、在node.js下安裝、與集合有關(guān)的方法、與對象有關(guān)的方法、與函數(shù)相關(guān)的方法等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • 淺談Sizzle的“編譯原理”

    淺談Sizzle的“編譯原理”

    正在學(xué)習(xí)Sizzle源碼或有一定前端基礎(chǔ)的同學(xué)們,可以一邊看源碼一邊看這些文章進行驗證,所以雖然我會分析源碼中的正則表達式,有大量的注釋,但不會講正則表達式的基本用法!
    2015-04-04
  • TypeScript前端上傳文件到MinIO示例詳解

    TypeScript前端上傳文件到MinIO示例詳解

    這篇文章主要為大家介紹了TypeScript前端上傳文件到MinIO示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10

最新評論

斗六市| 仁寿县| 南康市| 台北市| 武乡县| 武乡县| 灌阳县| 博兴县| 昂仁县| 上栗县| 泽库县| 阜阳市| 赣州市| 平舆县| 南江县| 望谟县| 南川市| 新安县| 威远县| 平原县| 宝坻区| 盖州市| 施甸县| 区。| 河曲县| 平阳县| 海淀区| 赤城县| 静宁县| 蕉岭县| 禹州市| 北票市| 仪陇县| 古交市| 乌拉特后旗| 离岛区| 三台县| 健康| 湘潭市| 阳曲县| 鄂托克前旗|