请考虑以下对空堆栈的操作顺序。
Push(54);push(52);pop();push(55);push(62);s=pop();
考虑以下对空队列的操作顺序。
enqueue(21);enqueue(24);dequeue();enqueue(28);enqueue(32);q=dequeue();
s + q的值为___________。
(A) 86
(B) 68
(C) 24
(D) 94答案: (A)
说明:让我们构造一个空堆栈并执行操作。堆栈遵循LIFO顺序。
1.推(54)//(54)
2.推(52)//(54,52)
3.Pop()//(54)
4.推(55)//(54,55)
5.推(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.Enqueue(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
这个问题的测验