栈是限制在表尾进行插入和删除操作的线性表

栈是限制在表尾进行插入和删除操作的线性表。栈的主要特点是后进先出”。允许插入、删除的这一端称为栈顶(Top),另一端称为栈底(Bottom)。

 
栈的运算包含
  1.进栈
  2.出栈
  3.读栈顶元素
  4.  判栈空
  5.  判栈满
  6.  显示栈元素
 
下面用Java实现一个简单的栈:
 异步代码,更快。

package zieckey.datastructure.study.stack;

/**
 * Demonstrates stacks
 *
 * @author
 */

public class StackX
{
    private int            maxSize;    // size of stack array
    private double[]    stackArray;
    private int            top;        // top of stack


    public StackX( int maxSize )
    {
        this.maxSize = maxSize;// 设置数组大小
        stackArray = new double[maxSize];// 创建数组
        top = -1;// 还没有任何元素
    }

    public void push( double j )
    {// 入栈
        if ( isFull( ) )
        {
            System.out.println( "Cannot insert item " + j + "! The stack is full." );
        } else
        {
            top++ ;
            stackArray[top] = j;
        }
    }

    public double pop()
    {// 出栈

        if ( isEmpty( ) )
        {
            System.out.println( "The stack is empty." );
            return 0.0;
        } else
        {
            return stackArray[top-- ];
        }
    }

    public double peek()
    {// 返回栈顶元素
        return stackArray[top];
    }

    public boolean isEmpty()
    {
        return ( -1 == top );
    }

    public boolean isFull()
    {
        return ( maxSize - 1 == top );
    }
}

posted on 2008-04-09 09:15  山远  阅读(1815)  评论(0编辑  收藏  举报