首页 > 试题广场 >

假设有一个医院的就诊队列,其中患者的名字首字母按照一定次序入

[单选题]
假设有一个医院的就诊队列,其中患者的名字首字母按照一定次序入栈等待,如下4个选项表示了4种入栈次序,以及最少需要的栈空间长度len,最后保证都可以得到出栈序列"ghijklmn",其中len值错误的是()
  • lkjhgimn 5
  • mlkighjn 6
  • jhgiklmn 3
  • ighnmjlk 4
len表示最少需要的栈空间长度
编辑于 2025-07-24 20:52:47 回复(0)
B项len长度为5即可,不需要到6。
发表于 2025-07-10 10:47:58 回复(0)
这是一道关于栈的入栈和出栈操作,判断所需最小栈空间长度  len  是否正确的题目,目标出栈序列为“ghijklmn”。以下用“→”来分析各选项: 1. 选项A:lkjhgimn ,len = 5 - 入栈:l→k→j→h→g(栈:[l, k, j, h, g] ,len=5 ) - 出栈:g(栈:[l, k, j, h] )→h(栈:[l, k, j] )→j(栈:[l, k] )→k(栈:[l] )→l(栈:[] ) - 入栈:i(栈:[i] )→出栈:i(栈:[] ) - 入栈:m(栈:[m] )→出栈:m(栈:[] ) - 入栈:n(栈:[n] )→出栈:n(栈:[] ) - 最大栈大小为5,给定  len = 5  正确。 2. 选项B:mlkighjn ,len = 6 - 入栈:m→l→k→i→g(栈:[m, l, k, i, g] ,len=5 ) - 出栈:g(栈:[m, l, k, i] ) - 入栈:h(因 h 不在栈顶需入栈,栈:[m, l, k, i, h] ,len=5 )→出栈:h(栈:[m, l, k, i] ) - 入栈:j(因 j 未入栈需入栈,栈:[m, l, k, i, j] ,len=5 )→出栈:j(栈:[m, l, k, i] ) - 出栈:i(栈:[m, l, k] )→k(栈:[m, l] )→l(栈:[m] )→m(栈:[] ) - 入栈:n(栈:[n] )→出栈:n(栈:[] ) - 最大栈大小为5,给定  len = 6  错误。 3. 选项C:jhgiklmn ,len = 3 - 入栈:j→h→g(栈:[j, h, g] ,len=3 ) - 出栈:g(栈:[j, h] )→h(栈:[j] )→j(栈:[] ) - 入栈:i(栈:[i] )→出栈:i(栈:[] ) - 入栈:k(栈:[k] )→出栈:k(栈:[] ) - 入栈:l(栈:[l] )→出栈:l(栈:[] ) - 入栈:m(栈:[m] )→出栈:m(栈:[] ) - 入栈:n(栈:[n] )→出栈:n(栈:[] ) - 最大栈大小为3,给定  len = 3  正确。 4. 选项D:ighnmjlk ,len = 4 - 入栈:i→g(栈:[i, g] ,len=2 ) - 出栈:g(栈:[i] ) - 入栈:h(因 h 未入栈需入栈,栈:[i, h] ,len=2 )→出栈:h(栈:[i] )→i(栈:[] ) - 入栈:n→m(栈:[n, m] ,len=2 ) - 入栈:j(因 j 未入栈需入栈,栈:[n, m, j] ,len=3 )→出栈:j(栈:[n, m] ) - 入栈:l(因 l 未入栈需入栈,栈:[n, m, l] ,len=3 )→出栈:l(栈:[n, m] ) - 入栈:k(因 k 未入栈需入栈,栈:[n, m, k] ,len=3 )→出栈:k(栈:[n, m] )→m(栈:[n] )→n(栈:[] ) - 最大栈大小为3,给定  len = 4  错误。 综上,选项B和D的  len  值错误
发表于 2025-03-27 16:37:38 回复(1)