两栈共享空间
在一个程序中如果需要同时使用具有相同数据类型的两个栈时,最直接的方法就是为每个栈开辟一个数组空间,不过这样做的结果可能出现一个站的空间已被占满而无法入栈操作,同时另一个栈的空间仍有大量剩余而没有得到利用的情况,从而造成存储空间的浪费。一种可取的方法是充分利用顺序栈单向延伸的特性,使用一个数组来存储两个栈,让每个栈的栈底为该数组的始端,另一个栈底为该数组的末端。每个栈从各自的端点向中间延伸。如图所示:
其中栈1顶,栈2顶分别用top1,top2标识。M为整个数组的长度。如果栈满,则栈1指针和栈2指针相邻。
两栈共享空间的顺序栈实现
/**
*
* @ClassName: SquentialBothStack.java
* @Description: 两栈共享空间实现
* @Copyright: Copyright (c) 2017
* @author 周扬
* @date 2017年6月6日 下午3:46:19
* @version V1.0
*/
public class SquentialBothStack {
/** 数组的长度 **/
private int maxSize = 10;
/** 存放栈元素的数组 **/
private Object[] data = n