Python二级--栈的专题

知识点

                栈由于是一端进出,bottom永远指向底部,故元素个数的变动仅取决于指针top。栈是线性结构顺序存储,故一开始就开辟了一个固定大小的存储空间,当栈满以后不能再进行入栈操作,否则会发生“上溢”错误。上图开辟了一个1-50的存储空间,当栈空时,top=0。有时题干会写top=-1,此时也表示为空。

        上图是正栈,意思是当入栈一个元素后,top=top+1。有时题干会考察倒栈,倒栈为空时,top=51,当入栈一个元素后时,top=top-1。

例题

1.设栈的顺序存储空间为S(1:m),初始状态为top=0。现经过一系列入栈与退栈运算后,top=m+1,则当前栈中的元素个数为(C)

A.0

B.m

C.不可能

D.m+1

解析:存储空间为S(1:m),初始状态为top=0,说明此时为空的正栈。一系列操作后,top=m+1,这显然不可能,因为栈满后不能再进行入栈操作。故选C

2.设栈的顺序存储空间为S(1:50),初始状态为top=-1。现经过一系列入栈与退栈运算后,top=30,则当前栈中的元素个数为(D)

A.20

B.19

C.31

D.30

解析:初始状态为top=-1,说明此时为空栈。一系列入栈退栈后,top=30,此时元素个数应该从1开始算起,1-30的位置都有元素,说明一共有30个元素。故选D。

3.设栈的顺序存储空间为S(1:m),初始状态为top=m+1,则栈中的元素个数为(B)

A.top-m+1

B.m-top+1

C.m-top

D.top-m

解析:初始状态top=m+1,说明是空的倒栈,此时栈中元素个数为0,m-top+1=m-m-1+1=0。故选B.。

4.设栈的顺序存储空间为S(1:50),初始状态为top=51。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为(A)

A.31

B.30

C.21

D.20

解析:初始状态为top=51,说明为空的倒栈,一系列操作后,top=20,此时S(20:50)的位置都有元素,故共有50-20+1=31个元素。故选A。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值