栈的逻辑结构

栈的定义

是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端成为栈顶,另一端成为栈底,不包含任何数据元素的栈成为空栈。

如图所示:

timg?image&quality=80&size=b9999_10000&sec=1496740760761&di=b6a607a056b93a207034a636a2fc9c29&imgtype=0&src=http%3A%2F%2Fsee.xidian.edu.cn%2Fcpp%2Fuploads%2Fallimg%2F140713%2F1-140G3143015500.jpg

 

 

 

 

当要删除元素的时候只能删除a5.换言之,在任何时候出栈的元素都只能是栈顶元素。即最后入栈者最先出栈。所以栈中元素除了具有线性关系外,还具有后进先出的特性

栈的抽象数据类型定义

虽然对插入和删除操作的位置限制减少了栈操作的灵活性,但同时也使得栈的操作更有效更容易实现。其抽象数据类型定义为:

ADT Stack
Data
   栈中元素具有相同类型及后进先出的特性
Operation
   InitStack
       功能:初始化一个栈
  
   DestroyStack
       前置:栈存在
       功能:销毁栈,释放栈空间
  
   Push
       前置:栈存在
       功能:入栈操作

   Pop
       前置:栈存在
       功能:出栈操作,删除栈顶元素,返回被删元素
 
   GetPop
       前置:栈存在
       功能:读取栈顶元素
   Empty
       前置:栈存在
       功能:判断栈是为空,返回1,否则返回0
   
 
       

 

转载于:https://my.oschina.net/zy223344/blog/915532

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值