栈的相关题目

简介: 栈的相关题目
  1. [单选]

5个不同的元素依次进栈,能得到()种不同的出栈序列。

A. 21

B. 42

C. 24

D. 48

答案:B

解析:

根据栈的数学性质:n个不同的元素进栈,出栈元素不同排列的个数为\frac{1}{n+1}C_{2n}^n。将n=5代入公式,可得共有42种不同的出栈序列

  1. [单选]

若栈的输入序列为abcd,下面四个序列中,不可能为其输出序列的是()

A. dcba

B. abcd

C. dcab

D. cbda

答案:C

解析:

对于某个出栈的元素,在它之前进栈却晚出栈的元素一定是逆序出栈的;那么若出栈序列的第一个元素为d,则出栈序列只能是dcba, 显然C错误

  1. [单选]

设栈S的初始状态为空,元素abcdefg依次进入栈S,若出栈顺序是bedcfag,则栈S的容量至少是()

A. 2

B. 3

C. 4

D. 5

答案:C

解析:

由题意可得:元素的入栈出栈次序为push(a),push(b),pop(b),push(c),push(d),push(e),pop(e),pop(d),pop(c),push(f),pop(f),pop(a),push(g),pop(g);已知栈S初始容量为0,每做一次push操作进行加1操作,每做一次pop操作进行减1操作,记录容量的最大值为4,故选C

  1. [单选]

设有一个空栈,栈顶指针为1500H,每个元素需要一个存储单元,执行push、push、pop、push、push、pop、pop、push、push、pop、push操作后,栈顶指针的值为()

A. 1501H

B. 1502H

C. 1503H

D. 1504H

答案:C

解析:

每个元素需要一个存储单元,所以每次入栈一次top加1,出栈一次top减1。题目中进行了7次push操作,4次pop操作,7-4=3,那么现在栈顶指针为1503H

  1. [单选]

经过以下栈的操作后,变量y的值为()

InitStack(s);push(s,a);push(s,b);pop(s,b);push(s,c);pop(s,y);top(s,y)

A. a

B. b

C. c

D. d

答案:A

解析:

执行前5句后,栈s内的值为a,c,其中c为栈顶元素;执行第6句后,栈顶元素c出栈,y的值为c;执行最后一句,获取栈顶元素的值,y的值为a


目录
相关文章
|
10天前
|
存储 JavaScript 前端开发
什么是堆?什么是栈?他们之间从区别和联系
什么是堆?什么是栈?他们之间从区别和联系
27 0
|
28天前
|
消息中间件 存储 搜索推荐
深入理解栈和队列(二):队列
深入理解栈和队列(二):队列
37 0
|
6天前
|
存储
栈与队列练习题
栈与队列练习题
|
6天前
|
存储 索引
操作数栈的字节码指令执行分析
操作数栈的字节码指令执行分析
|
6天前
|
算法 C++
D1. Range Sorting (Easy Version)(单调栈+思维)
D1. Range Sorting (Easy Version)(单调栈+思维)
|
6天前
|
人工智能
线段树最大连续子段板子😂单调栈
线段树最大连续子段板子😂单调栈
|
6天前
数据结构第四课 -----线性表之栈
数据结构第四课 -----线性表之栈
|
7天前
|
存储
栈数据结构详解
栈(stack)是一种线性数据结构,栈中的元素只能先入后出(First In Last Out,简称FILO)。最早进入的元素存放的位置叫作栈底(bottom),最后进入的元素存放的位置叫作栈顶 (top)。本文是对堆结构的通透介绍
|
7天前
|
存储 Java
数据结构奇妙旅程之栈和队列
数据结构奇妙旅程之栈和队列
|
8天前
|
算法
栈刷题记(二-用栈操作构建数组)
栈刷题记(二-用栈操作构建数组)