zoukankan      html  css  js  c++  java
  • typescript版数据结构与算法库

    数据结构与算法

    简介

    1. 常用的数据结构与算法typescript实现(内容补充中...)
    2. npm => https://www.npmjs.com/package/datastructures-algorithms-ts
    3. github => https://github.com/jarrett-k/datastructures-algorithms-ts
    4. 数据结构

    一种遵从后进先出(LIFO)原则的有序集合。新添加或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。

    import { Stack } from 'datastructures-algorithms-ts'
    
    const stack = new Stac<number>k()
    
    stack.push(...[1,2,3]) 
    stack.push(4)
    
    • push(element(s)):添加一个(或几个)新元素到栈顶。
    • pop():移除栈顶的元素,同时返回被移除的元素。
    • peek():返回栈顶的元素,不对栈做任何修改(该方法不会移除栈顶的元素,仅仅返回它)。
    • isEmpty():如果栈里没有任何元素就返回 true,否则返回 false。
    • clear():移除栈里的所有元素。
    • size():返回栈里的元素个数。
    • toString(): 返回栈里的内容的字符串表现形式。

    队列

    普通队列

    普通队列是遵循先进先出(FIFO,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。

    import { Queue } from 'datastructures-algorithms-ts'
    
    const queue = new Queue<number>()
    
    queue.enqueue(...[1,2,3]) 
    queue.enqueue(4)
    
    • enqueue(element(s)):向队列尾部添加一个(或多个)新的项。
    • dequeue():移除队列的第一项(即排在队列最前面的项)并返回被移除的元素。
    • peek():返回队列中第一个元素。队列不做任何变动(不移除元素,只返回元素信息)。
    • isEmpty():如果队列中不包含任何元素,返回 true,否则返回 false。
    • clear():移除队列里的所有元素。
    • size():返回队列包含的元素个数,与数组的 length 属性类似。
    • toString(): 返回栈里的内容的字符串表现形式。

    双端队列

    双端队列(deque,或称 double-ended queue)是一种允许我们同时从前端和后端添加和移除元素的特殊队列。

    import { Queue } from 'datastructures-algorithms-ts'
    
    const queue = new Queue<number>()
    
    queue.enqueue(...[1,2,3]) 
    queue.enqueue(4)
    
    • addFront(element):该方法在双端队列前端添加新的元素
    • addBack(element):该方法在双端队列后端添加新的元素
    • removeFront():该方法会从双端队列前端移除第一个元素
    • removeBack():该方法会从双端队列后端移除第一个元素
    • peekFront():该方法返回双端队列前端的第一个元素
    • peekBack():该方法返回双端队列后端的第一个元素)。
    • isEmpty():如果队列中不包含任何元素,返回 true,否则返回 false。
    • clear():移除队列里的所有元素。
    • size():返回队列包含的元素个数,与数组的 length 属性类似。
    • toString(): 返回栈里的内容的字符串表现形式。
  • 相关阅读:
    每天一道Java题[4]
    每天一道Java题[3]
    每天一道Java题[2]
    关于OOCSS架构
    新blog开张!
    [原]C++拾遗
    mark
    今天的情况(也是10月份的总结)
    11月份的总结
    Linux管道编程实例
  • 原文地址:https://www.cnblogs.com/guojiabing/p/12546202.html
Copyright © 2011-2022 走看看