Java实现顺序栈

代码里有注释

接口类:

package com.stack;

import sun.reflect.generics.tree.VoidDescriptor;

public interface IStack {
	public void clear();
	public boolean isEmpty();
	public int length();
	public Object peek();//取栈顶元素并返回其值,若为空则返回null
	public void push(Object x)throws Exception;//入栈
	public Object pop();//出栈
	public void display();
}

顺序栈类:

package com.stack;

import com.sun.javafx.sg.prism.web.NGWebView;

public class SqStack implements IStack {

	private Object[] stackElem;// 对象数组
	private int top;// 在非空栈中,top始终指向栈顶元素的下一个位置,
	// 当栈为空是,top=0

	// 构造一个存储空间为maxSize的空栈
	public SqStack(int maxSize) {
		top = 0;// 初始化top为0
		stackElem = new Object[maxSize];// 为栈分配maxSize个存储单元
	}

	// 栈置空
	@Override
	public void clear() {
		top = 0;
	}

	@Override
	public boolean isEmpty() {
		// TODO Auto-generated method stub
		return top == 0;
	}

	@Override
	public int length() {
		// TODO Auto-generated method stub
		return top;
	}

	@Override
	public Object peek() {
		if (!isEmpty()) {
			return stackElem[top - 1];
		} else
			return null;
	}

	@Override
	public void push(Object x) throws Exception {
		// TODO Auto-generated method stub
		if((int) stackElem.length==top){
			throw new Exception("栈已满");
		}
		else{
			stackElem[top++]=x;
		}
	}

	@Override
	public Object pop() {
		if(isEmpty())
		return null;
		else{
			return stackElem[--top];
		}
	}

	@Override
	public void display() {
		for (int i = top - 1; i >= 0; i--) {
			System.out.printf(stackElem[i].toString() + " ");
		}
	}

}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值