数据结构与算法(3)---Java语言实现:栈的单链表定义

栈(stack)是一种受限制的线性表,只能在线性表的一端进行插入和删除,是先进后出(FILO—First-In/Last-Out)的结构。
下面是用单链表来定义堆栈。单链表的定义参看系列博文的第一篇。

package 数据结构;

public class StackList {
	public Slinklist top;
	public int size;
	
	//构造方法
	public StackList() {
		top=null;
		size=0;
	}
	
	//返回栈的元素个数
	public int getSize(){
		return size;
	}
	//判断栈是否为空
	public boolean isEmpty(){
		return size==0;
	}
	
	//入栈操作
	public void push(int e){
		Slinklist p=new Slinklist(e,top);
		top=p;
		size++;
	}
	//出栈操作
	public int pop() throws EmptyStackException{
		if (size<1) throw new EmptyStackException("空栈,没有元素");
		int pdata=top.getData();
		top=top.getNext();
		size--;
		return pdata;
	}
	//获取栈顶元素
	public int peek() throws EmptyStackException{
		if(size<1) throw new EmptyStackException("空栈,栈顶没有元素");
		int topdata=top.getData();
		return topdata;
	}
}

空栈异常的定义:

package 数据结构;

public class EmptyStackException extends RuntimeException {
	public EmptyStackException(String str){
		super(str);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值