首页 > 编程语言 > 详细

TypeScript数据结构与算法(2)最基础的数据结构-栈

时间:2021-01-21 16:26:07      阅读:21      评论:0      收藏:0      [点我收藏+]

栈是一种先入后出的数据结构,最先进入的元素,却是最后出来,开发中,是否需要用到栈,只要记住它的这条特性就好了,这里我使用之前实现的DataStruct_Array类作为栈的底层容器实现,我们都知道对于栈来说,它需要提供给用户以下接口:

1.getSize():获取栈的实际数目

2.isEmpty():判断是否为空栈

3.getCapacity():获取栈的容量

4.push():入栈操作

5.pop():出栈操作(出栈顶元素)

6.peek():查看栈顶是哪位大神

在实现Stack类之前,需要先实现一个接口Interface_Stack,当然接口也是支持泛型的,下面是源码

export interface Interface_Stack<T> {
    getSize(): number;
    isEmpty(): boolean;
    push(e: T): void;
    pop(): T;
    peek(): T;
}
DataStruct_Stack类源码:
/**
* Autor: Created by 李清风 on 2020-12-17.
* Desc: 栈,关键词:先进后出,栈顶,push/peek/pop操作
*/
export class DataStruct_Stack<T> implements Interface_Stack<T> {
    private array: DataStruct_Array<T>;
    public constructor(capacity: number) {
        this.array = new DataStruct_Array<T>(capacity); //当然也有可以有一个默认的无参数的构造器
    }

    //获取栈中存在多少个元素
    public getSize(): number {
        return this.array.getSize();
    }

    //判断是不是空栈
    public isEmpty(): boolean {
        return this.array.isEmpty();
    }

    //获取栈实际容量
    public getCapacity(): number {
        return this.array.getCapacity();
    }

    //入栈操作(压栈操作),数组尾巴就是栈顶,所以这里不能用addFirst
    public push(e: T) {
        return this.array.addLast(e);
    }

    //取栈顶元素(出栈)
    public pop(): T {
        return this.array.removeLast();
    }

    //偷看栈顶元素是哪位大神
    public peek(): T {
        return this.array.getLast();
    }
}

 

 

TypeScript数据结构与算法(2)最基础的数据结构-栈

原文:https://www.cnblogs.com/makeamericagreatagain/p/14308227.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!