數據結構與算法
簡介
- 常用的數據結構與算法typescript實現(內容補充中...)
- npm => https://www.npmjs.com/package/datastructures-algorithms-ts
- github => https://github.com/jarrett-k/datastructures-algorithms-ts
棧
一種遵從后進先出(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(): 返回棧里的內容的字符串表現形式。