第三章:栈/队列 重点题

本文详细介绍了栈和队列这两种数据结构,包括它们的定义、性质以及在实际问题中的应用。针对栈,讨论了如何根据输入和输出序列推断元素的出栈顺序,并分析了栈满的条件。对于队列,解释了循环队列的概念,解决了顺序存储队列可能出现的假溢出问题,并给出了队列长度和队空、队满条件的计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 栈(Stack)是一种操作受限(只允许在一边进行插入或者删除操作)的线性表,遵循先进后出(也称后进先出)原则 Last In First Out ;

(1) 若一个栈的输入序列是1,2,3…, n , 输出序列的第一个元素是n ,则第i 个输出的元素是:n-i+1

分析:第一个输出的元素如果是n,证明1~n-1顺序入栈且还在栈中,此时按照栈的特性,后进先出,依次出栈的顺序是:
第二个:n-1
第三个:n-2
第四个:n-3

第n个:1
所以第i个输出的元素的按照规律就是:n-i+1

(2) 若一个栈的输入序列是1,2,3…, n , 输出序列的第一个元素是i ,则第j 个输出的元素是:不确定

该题跟第一题类似,但是因为第一个输出的元素i不确定,自然没法推断第j个输出的元素

(3)若一个栈的输入序列是P1,P2,P3…Pn ,输出序列是1,2,3…n, 若P3 = 1;P1的值不可能是:2

假设P1进,P2进,P3进,P3出(输出1),
按照题目的输出序列,第二个输出的必须是2,此时P3和P1中间隔着P2,所以必须P2出完,P1才能出栈,所以,P1绝对不可能是2,但是从P4~Pn都有可能是2,设 i 属于4~n范围内且Pi=2,则Pi进,Pi出,马上可以得到1,2的输出序列

(4)已知一个栈的入栈序列是1,2,3,4,出栈序列P1,P2,P3,P4,则P2,P4 不可能是:C
A:2,4 B:2,1 C:4,3 D:3,4

A选项,1进1出(P1),2进2出(P2),3进3出(P3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值