Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4204366
  • 博文数量: 176
  • 博客积分: 10059
  • 博客等级: 上将
  • 技术积分: 4681
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-24 12:27
文章分类

全部博文(176)

文章存档

2012年(1)

2011年(4)

2010年(14)

2009年(71)

2008年(103)

分类: Java

2008-03-05 22:23:02

    栈是限制在表尾进行插入和删除操作的线性表。栈的主要特点是后进先出”。允许插入、删除的这一端称为栈顶(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 );
    }
}

阅读(1722) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~