栈结构

1.栈的基本概念

栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。 栈是按照 " 先进后出"或 " 后进先出 " 的原则组织数据的。

2.栈的顺序存储及其运算

用一维数组 S(1∶ m)作为栈的顺序存储空间,其中 m为最大容量。

在栈的顺序存储空间 S( 1∶ m)中,
S(bottom )为栈底元素, S(top)为栈顶元素。 top=0

表示栈空; top=m 表示栈满。

栈的基本运算有三种:入栈、退栈与读栈顶元素。

( 1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加一(即 top
加1),然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位
置时,说明栈空间已满,不可能再进行入栈操作。这种情况称为栈 " 上溢 " 错误。

( 2)退栈运算:退栈是指取出栈顶元素并赋给一个指定的变量。首先将栈顶元素(栈顶指
针指向的元素)赋给一个指定的变量,然后将栈顶指针减一(即 top减 1)。当栈顶指针为 0时,
说明栈空,不可进行退栈操作。这种情况称为栈的 " 下溢 " 错误。

( 3)读栈顶元素: 读栈顶元素是指将栈顶元素赋给一个指定的变量。 这个运算不删除栈顶
元素,只是将它赋给一个变量,因此栈顶指针不会改变。当栈顶指针为 0时,说明栈空,读不到
栈顶元素。

小技巧: 栈是按照 " 先进后出 " 或 " 后进先出 " 的原则组织数据,但是出栈方式有多种选择,在考题中经常考查各种不同的出栈方式。(转载)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值