数据结构笔记5-栈

栈 是限定仅在表尾进行插入和删除操作的线性表。

栈的插入操作,叫进栈、压栈、入栈。

栈的删除操作,叫做出栈、弹栈。

试图从空栈中弹出元素,称为下溢;试图将元素压入满栈中被称为上溢。

栈的顺序存储结构

        当栈存在一个元素时,top等于0。

        空栈的判定条件定为top等于-1。

        存储栈的长度为StackSize,栈顶位置top必须小于StackSize。

        栈的进栈、出栈都没有涉及任何循环语句,因此时间复杂度均为O(1)。

两栈共享空间(针对两个具有相同数据类型的栈的一个技巧)

        使用这样的数据结构,通常都是当两个栈的空间需求有相反关系,也就是一个栈增长时,另一个栈在缩短的情况。

 栈的链式存储结构(链栈)

        把栈顶放在单链表的头部,对于链栈来说,是不需要头结点的。

        对于空栈来说,链表的原定义是头指针指向空,故top=NULL的时候。

        链栈的进栈push和出栈pop没有任何循环操作,时间复杂度均为O(1)。

        有n个数顺序依次进栈,出栈序列有Cn种,卡特兰数,这个挺重要的。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值