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

简介:

 

主类

package DataStructures;

public  class LinkedStack  {
    private ListNode topOfStack;

    public LinkedStack() {
        topOfStack = null;
    }


    public boolean IsFull() {
        return false;
    }


    public boolean IsEmpty() {
        return topOfStack == null;
    }


    public void makeEmpty() {
        topOfStack = null;
    }


    /**
     * Insert a new item into the stack.
     * 
     * 
@param x
     *            the item to insert.
     
*/

    public void Push(Object x) {
        topOfStack = new ListNode(x, topOfStack);
    }


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

    public Object Top() {
        if (IsEmpty())
            return null;
        return topOfStack.element;
    }


    /**
     * Remove the most recenly inserted item from the stack.
     * 
     * 
@throws Underflow
     
*/

    public void Pop() throws Underflow {
        if (IsEmpty())
            throw new Underflow();

        topOfStack = topOfStack.next;
    }


    /**
     * Return and remove the most recently inserted item from the stack.
     * 
     * 
@return the most recently iserted item in the stack, or null if empty.
     
*/

    public Object TopAndPop() {
        if (IsEmpty())
            return null;

        Object topItem = topOfStack.element;
        topOfStack = topOfStack.next;
        return topItem;
    }

}

异常类

package DataStructures;

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

public  class Underflow  extends Exception  {
}
本文转自冬冬博客园博客,原文链接:http://www.cnblogs.com/yuandong/archive/2006/08/23/484554.html ,如需转载请自行联系原作者
相关文章
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
978 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
11月前
|
存储 IDE Java
java设置栈内存大小
在Java应用中合理设置栈内存大小是确保程序稳定性和性能的重要措施。通过JVM参数 `-Xss`,可以灵活调整栈内存大小,以适应不同的应用场景。本文介绍了设置栈内存大小的方法、应用场景和注意事项,希望能帮助开发者更好地管理Java应用的内存资源。
629 4
【算法】栈
栈相关算法题,供参考,附有链接地址及板书
153 14
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
913 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
存储 算法 Java
Java 内存管理与优化:掌控堆与栈,雕琢高效代码
Java内存管理与优化是提升程序性能的关键。掌握堆与栈的运作机制,学习如何有效管理内存资源,雕琢出更加高效的代码,是每个Java开发者必备的技能。
325 5
|
算法 程序员 索引
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
栈的基本概念、应用场景以及如何使用数组和单链表模拟栈,并展示了如何利用栈和中缀表达式实现一个综合计算器。
268 1
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
存储 算法 Java
🧠Java零基础 - Java栈(Stack)详解
【10月更文挑战第17天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
488 2
|
算法
数据结构与算法二:栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式
这篇文章讲解了栈的基本概念及其应用,并详细介绍了中缀表达式转换为后缀表达式的算法和实现步骤。
345 3
|
存储 安全 Java
【用Java学习数据结构系列】探索栈和队列的无尽秘密
【用Java学习数据结构系列】探索栈和队列的无尽秘密
151 2

热门文章

最新文章