首页 > 试题广场 >

设栈的输入序列为 123…..n ,输出序列为 a1,a2,

[单选题]

设栈的输入序列为 123…..n ,输出序列为 a1,a2,a3,……,an ,若存在 1<=k<=n ,使得 ak=n ,则当 k<=i<=n 时, ai

  • n-i+1
  • n-(i-k)
  • i
  • 不确定
我是真的不确定
发表于 2019-06-07 14:32:06 回复(7)
元素出栈顺序未知。除非 a1=n,则说明元素全部入栈之后再弹出,此时出栈顺序则为a(n),a(n-1)...a(1)。这样答案就是 B 了。
发表于 2017-05-14 23:07:20 回复(3)
注意:要看清条件背后的本质,实际就是问n的出栈时间可以发生在任一时刻时,问n出栈后的大家的出栈顺序。而这是不确定的,除非n是第一个出栈,那就说明是在所有元素都进栈之后,再出栈,这时可以确定。
发表于 2019-08-05 08:49:49 回复(0)
实际就是问第k个出栈元素为n时,随后出栈的元素是啥
若一共有5个元素,1,2,3,4,5
左边为栈底,右边为栈顶
若5出栈时,栈的情况为1,2,3,5,那么5的前一个出栈为4,后一个出栈为3
若5出栈时,栈的情况为1,2,4,5,那么5的前一个出栈为3,后一个出栈为4

发表于 2018-10-22 09:42:57 回复(0)
这里无从得知在n弹出前,有哪些元素发生了进栈之后再出栈。比如进栈1、2、3、4、5,5是第3个弹出来的,这个时候只能得知栈里面有两个数字,但是无从得知是哪两个数字在里面
发表于 2018-07-23 14:45:23 回复(0)
看见n-i+1就想选。。。。。。
发表于 2022-05-13 16:57:09 回复(1)
注意:
要看清条件背后的本质,实际上n的出栈时间可以发生在任一时刻时,本题问的就是n出栈后的大家的出栈顺序。而这是不确定的,除非n是第一个出栈,那就说明是在所有元素都进栈之后,再出栈,这时可以确定。

实际就是问第k个出栈元素为n时,随后出栈的元素是啥
若一共有5个元素,1,2,3,4,5
左边为栈底,右边为栈顶
若5出栈时,栈的情况为1,2,3,5,那么5的前一个出栈为4,后一个出栈为3
若5出栈时,栈的情况为1,2,4,5,那么5的前一个出栈为3,后一个出栈为4
即:你不能确定下一个出栈的是什么
发表于 2022-03-01 14:09:01 回复(0)
发表于 2021-04-16 00:04:27 回复(0)
没看懂题目😂
发表于 2022-04-11 17:11:09 回复(0)
5sy头像 5sy
若k=1,也就是a1=n,则可以理解为全部放入后,再依次拿出来,则第i个输出,即ai=n-i+1;
若k=n,也就是an=n,则可以理解为每放一个进去,随后就拿出来,则第i个输出,即ai=i。
发表于 2021-03-27 09:36:02 回复(0)
只能确认a(k+1)到an都比n小,具体顺序无法得出! 除非k=1
发表于 2020-04-03 15:06:41 回复(0)
NJ头像 NJ
这道题是干什么的???
发表于 2017-06-25 16:24:03 回复(0)
555~ 题目都没有看懂,还以为n出栈之后其余的都顺序出栈了 就n-1,n-2..... 哎!真的不理解😭😭
发表于 2023-06-08 14:40:49 回复(0)
因为不知道前面是什么情况,故不知道后面的情况,就是最后一个元素出栈后,下面压着的元素什么情况不知道,可能缺哪个元素不知道
编辑于 2017-08-13 09:43:53 回复(0)
这题不应该选B吗?

这里,条件 ak = n 意味着数字 n 位于输出序列中的第 k 个位置。 由于堆栈是后进先出结构,对于 ak 为 n,必须将数字 1 到 n 压入堆栈,然后开始弹出数字,直到弹出 n - k + 1 个数字,只剩下 k 个数字 在堆栈上。 此时,下一个要弹出的数字(即 ak)必须是 n。

在 ak = n 之后,从 ak+1 到 an 的剩余序列将继续按降序从堆栈中弹出,因为这就是放入堆栈的方式。 所以:

ak+1 将是 n-1 (因为 n 已经被弹出),

ak+2 将是 n-2,

依此类推,直到

an 将为 n-(n-k) = k (因为我们有 n 个数字并弹出 n-k 个项目以达到 ak)。

因此,如果想要找到任意 k <= i <= n 的 ai 值,可以从 n 中减去 i 偏离 k 的位置数,从而得到:

ai = n - (i - k)

编辑于 2024-01-29 12:28:48 回复(0)
入栈序列是1到n,输出序列为 a1,a2,a3,……,an ,序列是未知的,若存在 1<=k<=n ,使得 ak=n ,这时候假设k就为n,an=n,这就说明,每个元素一入栈就出栈,出栈序列也是1到n;则当 k<=i<=n 时, 这时候i只能等于n,那B选项不是确定且符合结果的吗?
发表于 2023-10-28 13:10:47 回复(1)
有没有佬解说清楚一下,题目都没看明白
发表于 2023-07-22 12:18:14 回复(0)
假设序列为:12345
假设k=1,i=1

发表于 2022-08-30 00:01:45 回复(0)
题目问的是aj。j之前没说什么情况?所以不知道
发表于 2022-02-01 16:14:06 回复(0)
题意:最后进栈的数在中间某个位置(p)出栈了,如果指定某个出栈位置(在p之后),是否可以确定是哪个数
发表于 2022-01-28 18:00:26 回复(0)