栈的数组实现_JAVA描述《数据结构与算法分析》

简介:
主类
package DataStructures;

public  class ArrayStack  {
    private Object[] theArray;

    private int topOfStack;

    static final int DEFAULT_CAPACITY = 10;

    /**
     * Construct the stack.
     * 
     
*/

    public ArrayStack() {
        this(DEFAULT_CAPACITY);
    }


    /**
     * Construct the stack.
     * 
     * 
@param capacity
     *            teh capacity.
     
*/

    public ArrayStack(int capacity) {

    }


    public boolean IsEmpty() {
        return topOfStack == -1;
    }


    public boolean IsFull() {
        return topOfStack == theArray.length - 1;
    }


    public void MakeEmpty() {
        topOfStack = -1;
    }


    /**
     * Insert a new item into the stack, if not already full.
     * 
     * 
@param x
     *            th item to insert.
     * 
@throws Overflow
     *             if stack is already full.
     
*/

    public void Push(Object x) throws Overflow {
        if (IsFull())
            throw new Overflow();

        theArray[++topOfStack] = x;
    }


    /**
     * Get the most recently inserted item in the stack. Dos not alter the
     * stack.
     * 
     * 
@return the most recently inserted item, or null, if empty.
     
*/

    public Object Top() {
        if (IsEmpty())
            return null;
        return theArray[topOfStack];
    }


    public void Pop() throws Underflow {
        if (IsEmpty())
            throw new Underflow();
        theArray[topOfStack--] = null;
    }


    /**
     * Return and remove most recently inserted item form the stack.
     * 
     * 
@return most recently inserted item, or null, if stack is empty.
     
*/

    public Object TopAndPop() {
        if (IsEmpty())
            return null;
        Object topItem = Top();
        theArray[topOfStack--] = null;
        return topItem;
    }

}

异常类
package DataStructures;

/**
 * Exception class for access in full containers such as stacks, queues, and
 * priority queues.
 
*/

public  class Overflow  extends Exception  {
}

本文转自冬冬博客园博客,原文链接:http://www.cnblogs.com/yuandong/archive/2006/08/23/484641.html ,如需转载请自行联系原作者
相关文章
|
11天前
|
算法
【算法】栈
栈相关算法题,供参考,附有链接地址及板书
|
1月前
|
存储 算法 Java
Java 内存管理与优化:掌控堆与栈,雕琢高效代码
Java内存管理与优化是提升程序性能的关键。掌握堆与栈的运作机制,学习如何有效管理内存资源,雕琢出更加高效的代码,是每个Java开发者必备的技能。
57 5
|
2月前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
2月前
|
存储 算法 Java
🧠Java零基础 - Java栈(Stack)详解
【10月更文挑战第17天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
56 2
|
3月前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
39 4
|
3月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
47 2
|
3月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
106 2
|
算法 Java
栈和队列【数据结构与算法Java】
栈和队列【数据结构与算法Java】
54 0
|
算法 Java
用栈实现队列(java数据结构与算法)
用栈实现队列(java数据结构与算法)
133 0
|
前端开发 Java
栈与队列之用java实现队列
栈与队列之用java实现队列
108 0