对数据结构一点一小小的理解(五)——栈

作为一位大三的学生,近期在复习《数据结构与算法》这本教材;以下是我对复习内容的一点小小的理解,只是个人的部分观点,如有错误给您带来不便请您谅解

栈 Stacks

栈:限制了插入和删除的位置,插入与删除只在其一端进行
LIFO:Last in,First Out 先进后出

例子:洗一坨碗:洗一个摞一个,最后放上去的碗,第一个拿出来使用,最先洗的碗由于他在最下面,所以最后使用(先进后出)也就是为什么说限制了插入和删除的位置

为了和一般的线性表区分开,插入和删除有了几个特殊的概念:
插入 insert:push 入栈(压进来)
删除 remove:POP 出栈(弹出去)

Stack ADT

template <typename E> class Stack {
public:
    virtual void clear() = 0;
    virtual void push(const E& it) = 0;
    virtual E pop() = 0;
    virtual const E& topValue() const = 0;
    virtaul int length() const = 0;
};

基于数组的栈

template <typename E>
class Astack:public Stack<E>{
private:
    int maxSize;
    int top;//当前栈顶元素在数组中的位置
    E *lisArray;
    ...........
}

push:图例
这里写图片描述

pop:图例
这里写图片描述

Linked Stack(链式栈)

Template <typename E>
class LStack:public Stack<E>{
private:
    Link<E>* top;
    int size;
    ......
}

未完待续


以上是个人对这一部分的一点小小的理解。如有问题欢迎指正,在此感谢您对我的支持。联系方式:994771138@qq.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值