栈的数组实现_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 ,如需转载请自行联系原作者
相关文章
|
14天前
|
存储 Java 索引
Java快速入门之数组、方法
### Java快速入门之数组与方法简介 #### 一、数组 数组是一种容器,用于存储同种数据类型的多个值。定义数组时需指定数据类型,如`int[]`只能存储整数。数组的初始化分为静态和动态两种: - **静态初始化**:直接指定元素,系统自动计算长度,如`int[] arr = {1, 2, 3};` - **动态初始化**:手动指定长度,系统给定默认值,如`int[] arr = new int[3];` 数组访问通过索引完成,索引从0开始,最大索引为`数组.length - 1`。遍历数组常用`for`循环。常见操作包括求和、找最值、统计特定条件元素等。
|
14天前
|
存储 Java 索引
Java基础(六):数组
Java基础(六):数组
Java基础(六):数组
|
13天前
|
存储 Java C++
Java数组:静态初始化与动态初始化详解
本文介绍了Java中数组的定义、特点及初始化方式。
44 12
|
2月前
|
算法
【算法】栈
栈相关算法题,供参考,附有链接地址及板书
|
2月前
|
存储 算法 Java
Java 内存管理与优化:掌控堆与栈,雕琢高效代码
Java内存管理与优化是提升程序性能的关键。掌握堆与栈的运作机制,学习如何有效管理内存资源,雕琢出更加高效的代码,是每个Java开发者必备的技能。
83 5
|
3月前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
3月前
|
存储 算法 Java
🧠Java零基础 - Java栈(Stack)详解
【10月更文挑战第17天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
80 2
|
4月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
58 2
|
16天前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
16天前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
111 68

热门文章

最新文章