算法导论10.12习题解答(用一个数组实现两个栈)

CLRS 10.1-2 :

说明如何用一个数组A[1...n]来实现两个栈,使得两个栈中的元素总数不到n时,两者都不会发生上溢。注意PUSH和POP操作的时间应为O(1)。

解法:

用top1指向数组第一个元素,用top2指向数组最后一个元素,然后PUSH的时候,它们向中间进发,POP的时候向相应的方向减一。

原文地址:https://www.cnblogs.com/null00/p/2065060.html