栈的顺序存储结构及实现

顺序栈

栈的顺序存储结构成为顺序栈。

顺序栈的本质是顺序表的简化,唯一需要确定的是用数组的那一端标示栈底。通常把数组下标为0的一端作为栈底,同时设指正top指示栈顶元素在数组中的位置。设存储栈元素的数组长度为stackSize,则栈空时,指针top=-1;栈满时,指针top=stackSize-1.入栈时指针top=top+1;出栈时,指针top=top-1;

145454_DfY6_2329975.png

顺序栈的实现

/**
 * 
 * @ClassName: SquentialStack.java 
 * @Description: 顺序栈的实现
 * @Copyright: Copyright (c) 2017
 * @author 周扬
 * @date 2017年6月6日 下午3:26:13
 * @version V1.0
 */
public class SquentialStack {

	/** 数组的长度 **/
	private int maxSize = 10;

	/** 存放栈元素的数组 **/
	private Object[] data = new Object[maxSize];

	/** 栈顶指针 **/
	private int top;

	public SquentialStack() {
		top = -1;
	}

	/**
	 * @MethodName: push
	 * @Description: 入栈操作
	 * @param obj
	 * @author 周扬
	 * @throws Exception
	 * @date 2017年6月6日 下午3:16:21
	 */
	public void push(Object obj) throws Exception {
		// 判断是否栈满
		if (top == maxSize - 1) {
			throw new Exception("栈满");
		}
		// 存入元素
		data[top + 1] = obj;
		// 指针上移
		top++;
	}

	/**
	 * @MethodName: pop
	 * @Description:出栈
	 * @return
	 * @author 周扬
	 * @throws Exception
	 * @date 2017年6月6日 下午3:18:47
	 */
	public Object pop() throws Exception {
		// 判断是否空栈
		if (top == -1) {
			throw new Exception("空栈");
		}
		// 获取栈顶元素
		Object obj = data[top];

		// 释放栈顶元素空间
		data[top] = null;

		//指针下移
		top--;
		
		// 返回栈顶元素
		return obj;
	}

	/**
	 * @MethodName: getTop
	 * @Description: 获取栈顶元素
	 * @return
	 * @throws Exception
	 * @author 周扬
	 * @date 2017年6月6日 下午3:22:23
	 */
	public Object getTop() throws Exception {
		// 判断是否空栈
		if (top == -1) {
			throw new Exception("空栈");
		}
		// 返回栈顶元素
		return data[top];
	}
	
	/**
	 * @MethodName: empty
	 * @Description: 判断是否为空栈,是返回1,否返回0
	 * @return
	 * @author 周扬
	 * @date 2017年6月6日 下午3:24:29
	 */
	public int empty(){
		if(top==-1){
			return 1;
		}
		return 0;
	}
}

 

转载于:https://my.oschina.net/zy223344/blog/915566

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值