顺序栈的java简单实现

/** 
* @author*simonws
*/ 
public class StackNode< T> {  
    //要存储的信息  
    private T info;  
      
    public StackNode()  
    {  
        this(null);  
    }  
      
    public StackNode(T info)  
    {  
        this.info = info;  
    }  
      
    //set方法  
    public void set(T info)  
    {  
        this.info = info;  
    }  
      
    //get方法  
    public T get()  
    {  
        return info;  
    }  

而后,是栈的实现了,这才是关键:
/** 
* @author*simonws

*/ 
public class Stack< T> {  
    //储存数据的栈  
    private StackNode< T> stack[];  
      
    //栈的最大容量  
    private int maxSize;  
      
    //栈的当前容量  
    private int size;  
      
    //不传参数,默认栈的最大容量为100  
    public Stack()  
    {   
        this.maxSize = 100;  this

    }  
      
    public Stack(int maxSize)  
    {  
        //若是传入的参数小于或等于0,则设置最大容量为100  
        if(maxSize <= 0)  
            maxSize = 100;  
        this.maxSize = maxSize;  
    }  
      
    //初始化栈,在堆中先申请好内存空间  
    public void initStack()  
    {   
        stack =  new StackNode[maxSize];     
        //栈的当前大小为0  
        size = 0;  
    }  
      
    //栈的基本方法之一,得到栈顶元素  
    public StackNode< T> getTop()  
    {  
        //栈中没有元素,则返回空  
        if(size == 0)  
            return null;  
        return stack[size-1];  
    }  
      
    //栈的基本方法之一,入栈  
    public boolean push(StackNode< T> stackNode)  
    {  
        //栈已满,入栈失败  
        if(size >= maxSize)  
            return false;  
        size++;  
        stack[size] = stackNode;  
        return true;  
    }  
      
    //栈的基本方法之一,出栈  
    public StackNode< T> pop()  
    {  
        //若是栈已空,则返回null  
        if(size <= 0)  
            return null;   内存

        StackNode< T> pop = stack[size-1];get

        stack[size-1] = null;
        size--; it

         return pop ;  
    }  
      
    //栈是否为空  
    public boolean isEmpty()  
    {  
        if(size <= 0)  
            return true;  
        return false;  
    }  
      
    //栈的基本方法之一,遍历栈  
     public void traverse()  
     {  
         for(int i = 0; i < size; i++)  
         {  
             System.out.println(stack[i].get());  
         }  
     }  
       
     public static void main(String []agrs)  
     {  
         Stack< String> stack = new Stack< String>();  
         stack.initStack();  
         stack.push(new StackNode< String>("Anybody1"));  
         stack.push(new StackNode< String>("Anybody2"));  
         stack.push(new StackNode< String>("Anybody3"));  
         stack.traverse();  
     }  

class

相关文章
相关标签/搜索