public class MyStack {
private long[] arr;
private int top;
public MyStack() {
arr = new long[10];
top = -1;
}
public MyStack(int maxsize) {
arr = new long[maxsize];
top = -1;
}
// add
public void push(int value) {
arr[++top] = value;
}
// remove{
public long pop() {
return arr[top--];
}
public long peek() {
return arr[top];
}
public boolean isEmpty() {
return top == -1;
}
public boolean isFull() {
return top == arr.length - 1;
}
public static void main(String[] args) {
MyStack myStack = new MyStack(4);
myStack.push(1);
myStack.push(2);
myStack.push(3);
myStack.push(4);
System.out.println(myStack.isEmpty());
System.out.println(myStack.isFull());
System.out.println(myStack.peek());
System.out.println(myStack.peek());
while (!myStack.isEmpty()) {
myStack.pop();
}
System.out.println(myStack.isEmpty());
System.out.println(myStack.isFull());
}
}
分享到:
相关推荐
Java栈是一种基于后进先出(LIFO)原则的数据结构,它在计算机科学和编程中具有广泛的应用。本文将深入探讨Java中栈的实现以及其在实际应用中的使用。 首先,我们来理解栈的基本概念。栈是一种特殊类型的线性数据...
以下是一个简单的栈操作例子: ```java import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack<Integer> stack = new Stack(); stack.push(1); // 入栈 stack...
- **线程绑定**:每当启动一个新的线程,JVM会为该线程分配一个Java栈,用于保存线程的运行状态。 - **栈帧结构**:栈是通过栈帧来组织的,每个栈帧包含局部变量区、操作数栈和帧数据区。 - **数据私有性**:每个...
本项目是利用栈来实现一个简单的计算器,不支持括号表达式的计算,其用户界面是通过Java Swing库构建的。下面将详细介绍这个计算器的实现原理以及涉及到的相关知识点。 1. **栈的基本概念**: 栈是一种线性数据...
栈中的一个重要特性是它可以共享数据。例如,在代码`int a = 3; int b = 3;`中,尽管定义了两个不同的整型变量a和b,但由于它们引用的是同一个字面值3,所以实际上只有一个存储空间。这种共享机制提高了内存效率,但...
当一个对象被创建时,其数据将被分配到堆内存中。堆内存的特点是动态分配,即对象的大小在创建时不确定,且对象的生命周期也较难预测。由于这些特性,堆内存的管理较为复杂,但同时也为Java应用程序提供了极大的灵活...
每个元素称为节点,包含两部分:数据域存储实际的数据,指针域存储指向下一个节点的引用。链表的最后一个节点的指针域通常为null,表示链表的结束。线性链表有单链表和双链表两种形式,单链表只能向前遍历,双链表则...
创建一个栈非常简单,只需如下代码: ```java Stack<Integer> stack = new Stack(); ``` 2. **基本操作** - **压栈(push)**: 向栈顶添加元素。 ```java stack.push(1); ``` - **弹栈(pop)**: 移除并...
在“简单Java计算器课程设计”项目中,我们主要探讨的是如何使用Java编程语言来实现一个基本的四则运算计算器。这个课程设计的目标是让学生掌握Java编程基础,理解面向对象编程的概念,并能实际应用到实际问题解决中...
在Java中,我们可以使用`java.util.Stack`类来创建一个栈,或者简单地用数组模拟栈的操作。 以下是使用栈判断回文串的基本步骤: 1. 创建一个空栈,用于存储字符串的字符。 2. 遍历输入字符串的每个字符,将它们...
创建一个栈对象非常简单,如下所示: ```java import java.util.Stack; Stack<Integer> stack = new Stack(); ``` 1. **压栈操作**:压栈,即向栈顶添加元素,可以使用`push()`方法完成。在给定的描述中,我们...
简单的计算
使用上述`SeqStack`类,我们可以编写一个简单的测试程序来验证其功能。 ```java public static void main(String[] args) { SeqStack<Integer> stack = new SeqStack(); stack.push(1); stack.push(2); stack....
这个项目是一个简单的计算器程序,它使用了J#这一微软推出的.NET框架下的Java方言来实现,同时具备基本的四则运算功能。而这些运算的实现方式是通过栈这种数据结构来完成的。 首先,J#是Microsoft推出的一种兼容...
Java Jain SIP是一个强大的开源库,用于在Java平台上构建SIP(Session Initiation Protocol)应用程序。这个简单的JAVA-JAIN-SIP客户端示例展示了如何利用该库与SIP服务器进行交互,实现登录和发起呼叫的基本功能。...
每当调用一个方法时,都会在栈上创建一个新的栈帧来保存该方法的信息,如局部变量、参数和返回地址等。 - **堆空间**:堆是所有线程共享的一块内存区域,用于存储对象的实例。JVM通过垃圾回收机制自动管理堆内存,...
在Java编程语言中,LinkedList集合类是一个非常重要的数据结构,它可以用来实现栈和队列这两种特殊的数据结构。LinkedList是一个双链表,每个节点包含数据元素和两个引用,分别指向前后节点,这使得在列表中进行插入...
线性表中的元素具有顺序关系,即每个元素都有一个前驱和后继,除了第一个元素没有前驱,最后一个元素没有后继。线性表的操作通常包括插入、删除、查找等。 在Java中,线性表可以使用数组或链表来实现。数组实现简单...
【标题】"简单网上书店(JAVA)"是一个基于JAVA技术实现的小型网上书店项目,它展示了如何使用JAVA技术栈来构建一个完整的Web应用程序。这个项目包括了源代码、需求分析文档、数据库脚本以及系统表结构设计,为学习...
- `JavaWEB商城项目.zip`可能是另一个基于Java Web的商城实现,可能使用了特定的技术栈,如Spring Boot和MyBatis。 - `master.zip`可能包含了项目的主分支代码,可能是一个完整的商城解决方案,包含前端和后端。 ...