`
magaojie6
  • 浏览: 6056 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

java实现栈

 
阅读更多
/**
* 基于数组实现的顺序栈
* @param <E>
*/
public class Stack<E> {
    private Object[] data = null;
    private int maxSize=0;   //栈容量
    private int top =-1;  //栈顶指针
   
    /**
     * 构造函数:根据给定的size初始化栈
     */
    Stack(){
        this(10);   //默认栈大小为10
    }
   
    Stack(int initialSize){
        if(initialSize >=0){
            this.maxSize = initialSize;
            data = new Object[initialSize];
            top = -1;
        }else{
            throw new RuntimeException("初始化大小不能小于0:" + initialSize);
        }
    }
   
    //判空
    public boolean empty(){
        return top==-1 ? true : false;
    }
   
    //进栈,第一个元素top=0;
    public boolean push(E e){
        if(top == maxSize -1){
            throw new RuntimeException("栈已满,无法将元素入栈!");
        }else{
            data[++top]=e;
            return true;
        }   
    }
   
    //查看栈顶元素但不移除
    public E peek(){
        if(top == -1){
            throw new RuntimeException("栈为空!");
        }else{
            return (E)data[top];
        }
    }
   
    //弹出栈顶元素
    public E pop(){
        if(top == -1){
            throw new RuntimeException("栈为空!");
        }else{
            return (E)data[top--];
        }
    }
   
    //返回对象在堆栈中的位置,以 1 为基数
    public int search(E e){
        int i=top;
        while(top != -1){
            if(peek() != e){
                top --;
            }else{
                break;
            }
        }
        int result = top+1;
        top = i;
        return result;     
    }
}
分享到:
评论

相关推荐

    Java实现栈的基本操作

    Java实现栈的基本操作

    java 栈的实现和应用

    2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,因此具有线程安全的特性。但通常,由于其性能较低,推荐使用`ArrayDeque`。使用`Stack`类的示例如下: ```java ...

    用Java实现栈的所有操作,并用栈实现几个常见算法题

    用Java实现栈的所有操作,并用栈实现几个常见算法题

    Java实现栈和队列面试题

    以上就是Java实现栈和队列面试题的主要内容。理解和熟练掌握这些知识点对于Java开发者来说至关重要,因为它们涉及到基础数据结构的运用,能够反映候选人在解决实际问题时的逻辑思维和算法能力。在面试中,候选人可能...

    java数据结构之java实现栈

    Java 数据结构之 Java 实现栈 Java 数据结构实现栈是 Java 编程语言中的一种基础数据结构。栈是一种抽象数据类型,遵循 FILO(First In Last Out,先进后出)原则,即最后入栈的元素最先出栈。栈的实现有多种方式,...

    用Java语言实现栈的功能

    实现弹栈,进栈,判断栈是否为空或满等功能 Java入门的简单程序

    用java通过接口实现栈和队列

    使用java实现栈和队列,通过接口实现多态

    用Java实现一个栈

    用Java实现一个栈

    Java用栈实现的计算器

    Java提供了`java.util.Stack`类来实现栈。它继承自`Vector`类,因此提供了丰富的线程安全的方法,如`push()`, `pop()`, `peek()`等。在这个计算器项目中,我们可以创建一个栈对象来存储数字和运算符。 3. **表达式...

    用java实现的栈Stack类

    用java实现的栈Stack类,不继承任何集合类,用对象数组实现

    栈的Java语言实现

    ### 栈的Java语言实现详解 #### 一、栈的基本概念 栈是一种特殊的线性表,只允许在表的一端...这些内容不仅有助于理解栈的工作原理,还能帮助读者掌握栈的Java实现技巧,为进一步学习算法和数据结构打下坚实的基础。

    java实现的算术表达式,带简单界面

    在标签中提到了“java 栈”,这暗示了项目的核心部分是如何使用Java实现栈数据结构。在Java中,除了ArrayList,还可以使用LinkedList等数据结构来实现栈。不过,ArrayList通常在空间效率和快速访问上更有优势,因此...

    java栈实现计算器中缀表达式

    java数字栈和符号栈模拟计算器(中缀表达式) “计算中缀表达式”可以称得上是一个特别经典的关于栈的算法题,几乎在所有数据结构教材中都会涉及,而且很多公司面试或者笔试的时候都会把这道题作为一个考察点。可以说...

    java sip 协议栈实现客户端和服务

    3. 如何使用Java实现SIP客户端和服务器端。 4. Eclipse开发环境的使用和调试技巧。 5. Ant构建工具的使用。 6. 日志记录和调试技术。 7. 依赖管理和库的引入。 此外,还可以深入了解网络编程、多线程处理、异常处理...

    java实现的顺序栈

    java实现的顺序栈,部分代码:public class OrderStack { int top=-1; String[] stack; public OrderStack(int initcap)throws Exception{ if(initcap){

    Java定义栈结构,并实现入栈、出栈操作完整示例

    栈可以使用数组或链表实现,本文使用 ArrayList 实现栈结构。 栈结构的定义包括以下几个部分: * 入栈(push):将元素添加到栈顶 * 出栈(pop):将栈顶元素取出 * 栈是否为空(isEmpty):判断栈是否为空 * 栈...

    java实现顺序栈

    Java实现顺序栈是一种常见的数据结构操作,主要用于存储和管理元素序列。栈是一种后进先出(LIFO,Last In First Out)的数据结构,通常用于执行回溯、递归等算法。在Java中,我们可以使用数组或ArrayList来实现顺序...

    线性表,单链表,栈 java实现

    下面将详细解释这些概念及其Java实现。 **线性表** 是一种基本的数据结构,它是由n(n&gt;=0)个相同类型元素构成的有限序列。线性表中的元素具有顺序关系,即每个元素都有一个前驱和后继,除了第一个元素没有前驱,...

    数据结构 Java实验4 栈和队列.doc

    通过这两个实验,我们不仅学会了如何用Java实现栈和队列这两种重要的数据结构,而且还掌握了如何将它们应用于解决实际问题。栈和队列的应用非常广泛,它们在计算机科学的各个领域中都扮演着重要的角色。例如,栈在...

Global site tag (gtag.js) - Google Analytics