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

来源:互联网 发布:win10杀毒软件知乎 编辑:程序博客网 时间:2024/05/24 02:38
栈(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);}}


阅读全文
0 0
原创粉丝点击