栈的兑现

栈的实现

栈的实现:

import java.io.*;

//栈中的每个节点
class Element
{
	//指向下一个节点
	private Element next;
	//节点中的对象
	private Object  value;
	
	public Element getNext() {
		return next;
	}

	public Object getValue() {
		return value;
	}
	
	public Element()
	{
		this.next=null;
		this.value=null;
	}
	//构造方法
	public Element(Element next,Object value)
	{
		this.next=next;
		this.value=value;
	}
	
}

//栈结构
public class MyStack {
	 //指向最顶的栈节点
	 Element top;
	 //栈中节点个数
	 int     count;
	 
	 //初始化栈
	 public MyStack()
	 {
		 this.top=null;
		 count=0;
	 }
	 //压入
	 public void push(Object value)
	 {
		 Element e=new Element(this.top,value); 
		 this.count++;
		 this.top=e;
	 }
	 //弹出
	 public Object pop()
	 {
		 Element e=this.top;
		 if(this.top!=null)
		 {
			 this.count--;
			 this.top=this.top.getNext();
			 return e.getValue();
		 }
		 else return null;
	 }
	 //查看栈顶节点
	 public Object get_top()
	 {
		 if(this.top!=null)
		 {
			 return this.top.getValue();	 
		 }
		 else
		 {
			 return null;
		 }
	 }
	 //栈中节点数
	 public int get_count()
	 {
		 return this.count;
	 }
	 
     public static void main(String args[])
     {
    	  MyStack s=new MyStack();
    	  Integer i=new Integer("1");
    	  String j=new String("2345abcdej");
    	  s.push(i);
    	  s.push(j);
    	  System.out.println("栈节点数:"+s.get_count());
    	  System.out.println("查看栈顶:"+s.get_top());
    	  System.out.println("弹出栈顶:"+s.pop());
    	  System.out.println("---------------------------");
    	  System.out.println("栈节点数:"+s.get_count());
    	  System.out.println("查看栈顶:"+s.get_top());
    	  System.out.println("弹出栈顶:"+s.pop());
    	  System.out.println("---------------------------");
    	  System.out.println("栈节点数:"+s.get_count());
    	  System.out.println("查看栈顶:"+s.get_top());
    	  System.out.println("弹出栈顶:"+s.pop());
    	  System.out.println("---------------------------");
     }
}