Java实现链栈

来源:互联网 发布:有房卡麻将源码自己做 编辑:程序博客网 时间:2024/06/05 02:55

用到了之前链表写的结点类,可以在前面的文章中找到,只是定义了数据域和指针域,这里不再写了

接口类:

package com.stack;import sun.reflect.generics.tree.VoidDescriptor;public interface IStack {public void clear();public boolean isEmpty();public int length();public Object peek();//取栈顶元素并返回其值,若为空则返回nullpublic void push(Object x)throws Exception;//入栈public Object pop();//出栈public void display();}

链栈类:

package com.stack;import linearList.Node;public class LinkStack implements IStack {private Node top;//用到之前写过的结点类,栈顶元素的引用@Overridepublic void clear() {top=null;}@Overridepublic boolean isEmpty() {return top==null;}@Overridepublic int length() {Node p=top;int length=0;while(p!=null){p=p.next;length++;}return length;}@Overridepublic Object peek() {if(!isEmpty()){return top.data;}else{return null;}}@Overridepublic void push(Object x) throws Exception {Node p=new Node(x);p.next=top;top=p;}@Overridepublic Object pop() {if(isEmpty()){return null;}else{Node p=top;top=top.next;return top.data;}}@Overridepublic void display() {Node p=top;while(p!=null){System.out.printf(p.data.toString()+" ");p=p.next;}}}


0 0