Blinkbean
10
07
算法导论-单数组实现双端队列 算法导论-单数组实现双端队列
栈插入和删除元素只能在同一端进行,队列的插入操作和删除操作分别在两端进行,与它们不同的,有一种双端队列(deque),其插入和删除操作都可以在两端进行。写出4个时间均为O(1)的过程,分别实现在双端队列插入和删除元素的操作,该队列使用一个数
2020-10-07
07
算法导论-两个栈实现队列 算法导论-两个栈实现队列
用两个栈实现队列,并分析相关队列操作的运行时间。 单栈push和pop的运行时间都为O(1),所以需要考虑的就是两个栈之间切换所用时间。 最坏情况:在push和pop交替操作时,需要将一个栈中的数据转移到另一个栈中,转移所用时间为O(n),
2020-10-07
07
05
算法导论—一个数组中实现两个栈 算法导论—一个数组中实现两个栈
如何在一个数组A[1..n]中实现两个栈,使得当两个栈的元素个数之和不为n时,两者都不会发生上溢。 要求push和pop操作的运行时间为O(1)。 实现: 两个栈分别从数组的两端开始,向中间push元素,直到两个指针相遇。12345678
2020-10-05