考虑以下对空堆栈的操作序列。
Push(54);push(52);pop();push(55);push(62);s=pop();
考虑以下对空队列的操作序列。
enqueue(21);enqueue(24);dequeue();enqueue(28);enqueue(32);q=dequeue();
s+q 的值为 ___________。
(一) 86
(乙) 68
(三) 24
(四) 94答案:(一)
说明:让我们构造一个空堆栈并进行操作。堆栈遵循 LIFO 顺序。
1.Push(54) // (54)
2.Push(52) // (54,52)
3.Pop() // (54)
4.Push(55) //(54,55)
5.Push(62) //(54,55,62)
6.s=pop() // (54,55)
s=62;
让我们构造一个空队列并执行操作。队列遵循 FIFO 顺序。
1.入队(21) // [21]
2.入队(24) // [21,24]
3.Dequeue() // [24]
4.入队(28) // [24,28]
5.入队(32) // [24,28,32]
6.q=Dequeue() // [28,32]
q=24;
s+q=62+24
所以, s+q=86 。
替代方式:
堆栈是后进先出的数据结构,所以 s = pop() = 62
队列是先进先出的数据结构,所以 q = dequeue() = 24
所以,
s+q = 62+24 = 86
这个问题的测验