Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
此外,您不能使用指针
这个问题是一个面试问题,听起来让我很困惑,因为给出了堆栈 ADT 并询问了队列上的操作......
在队列中,排队总是在最右边的填充位置插入数据,在堆栈中,数据也被插入到最后(顶部)。因此,在堆栈上模拟入队操作并不困难。一个 push() 操作就足够了。问题在于出队操作。模拟出队的一种方法是使用堆栈的两个实例,并在出队时请求空堆栈 1 进入堆栈 2,然后从堆栈 2 中弹出,然后使用堆栈 2 恢复堆栈 1。
入队操作的时间复杂度为 O(1)(与队列相同),但出队操作的时间复杂度为 O(n),其中 n 是堆栈中的项目数,大于队列的 O(1) .