使用TypeScript实现栈结构
一. 栈的基本概念
栈(Stack)是一种后进先出(Last In First Out)的数据结构。它是从栈顶插入(push)元素,我们称之为入栈,从栈顶推出(pop)元素,我们称之为出栈。栈的用途非常广泛,生活中我们喝红酒总是先喝掉后倒入的,后喝掉先倒入的,一摞书,我们总是先取到最上面的书。编程中栈被用于函数调用栈以及浏览器历史记录栈。
二. 栈的实现
interface StackData<T> {
[index: number]: T;
}
class Stack<T> {
private items: StackData<T> = {
}
private count: number = 0
push (ele: T) {
this.items[this.count++] = ele
}
peek () {
return this.items[this.count - 1]
}
pop () {
if (this.isEmpty()) return
const result = this.items[--this.count]
delete this.items[this.count]
return result
}
isEmpty () {
return this.count === 0
}
size () {
return this.count
}
clear () {
this.items = {
}
this.count = 0
}
toString () {
if (this.isEmpty()) return ''
let objString = `${