您的位置:首页 > 理论基础 > 数据结构算法

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

2017-09-05 11:21 519 查看
栈(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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: