用两个先进后出的栈实现一个先进先出的队列。
思路:往stack1中插入元素,由于栈的性质,最先进的元素放最下,后进元素在上面,因此,当我们要删除元素时,就必须把上面的元素放到stack2中,放到stack2中的元素刚好是放入的顺序,因此可以直接删除。因此,在删除操作时,我们先判断stack2是否为空,不为空,直接pop()元素就删除了,如果为空,则将stack1的元素全部放stack2中,注意的是:当stack2不为空时,一定不能将stack1的元素放入stack2中。
用两个先进后出的栈实现一个先进先出的队列。
思路:往stack1中插入元素,由于栈的性质,最先进的元素放最下,后进元素在上面,因此,当我们要删除元素时,就必须把上面的元素放到stack2中,放到stack2中的元素刚好是放入的顺序,因此可以直接删除。因此,在删除操作时,我们先判断stack2是否为空,不为空,直接pop()元素就删除了,如果为空,则将stack1的元素全部放stack2中,注意的是:当stack2不为空时,一定不能将stack1的元素放入stack2中。