队列和栈是计算机中两个非常重要的数据结构,经过前面的学习(《队列》、《栈》)我们知道了它们各自的特点,队列是先进先出(FIFO)的,而栈是先进后出(FILO)的,那如何用栈来实现队列呢?这可是一道经典的面试题,所以本文我们就来实现一下。
在正式开始之前,我们先来回顾一下栈和队列的常用方法。
栈(Stack)的常用方法包含以下这些:
-
push():入栈方法,向栈顶添加元素;
-
pop():出栈方法,将栈顶的元素移除并返回元素;
-
peek():查询栈顶元素,并不会移除元素。
队列(Queue)的常用方法包含以下这些:
-
offer():入队方法,向队尾添加元素;
-
poll():出队方法,从队头移除并返回元素;
-
peek():查询队头元素,并不会移除元素。
有了这些前置知识,接下来我们来看今天的题目。
题目描述
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead,分别完成在队列尾部插入整数和在队列