CSP-j初赛及其试题_附件:栈与队列
2025-08-03 20:55:27
发布于:河北
名词解释:
入栈:栈的储存方式
出栈:栈的弹出方式
栈顶:栈的最顶端元素
栈低:栈的最低端元素
队列与上同理
什么是栈与队列:
栈(stack)
储存元素的数据结构,储存的顺序是先进后出,举个栗子:你在洗盘子,洗完的盘子叠到了一块,这是**妈要炒菜,需要两个盘子,那么你只能拿上面的盘子,而不能拿下面的,不然盘子会塌
栈也是一样,若如栈的方式是abcde,那么出栈的顺序就为edcba。
说简单点,你可以把栈理解成这个:

常见函数
| 代码 | 作用 |
|---|---|
| push(x) | 元素入栈 |
| pop() | 弹出栈顶 |
| top() | 返回栈顶 |
| empty() | 判断栈是否为空 |
| size() | 返回栈内元素的数量 |
经典题目
入栈顺序为abcde,出栈顺序不可能的是:
A.edcba
B.abcde
C.adecb
D.ecdab
我们可以用上面的方法推出来,先来看a选项:
abcde进,edcba出,没问题
b选项:a进a出,b进b出,c进c出,d进d出,e进e出,没问题
c选项:a进a出,b进b出,c进,d进,e进e出,顶为d,d出,c出
d选项用之前的方法推,能发现e出完以后栈顶是d,c不能出栈,所以d不行
故选D
队列(queue)
和你在排队打饭一样,谁先排队谁先吃,说专业一点就是先进先出
常见函数
| 代码 | 作用 |
|---|---|
| push(x) | 元素队尾栈 |
| pop() | 弹出队头 |
| front() | 返回对头 |
| empty() | 判断队列是否为空 |
| size() | 返回队列内元素的数量 |
eeeee,没有关于队列的题(如果有也可以投稿)
有一道:

但这是关于栈的,队列中的数就是出栈数,是关于栈的题
所以……………………………………还是不讲了吧
这里空空如也













有帮助,赞一个