/**
* 基于数组实现的顺序栈
* @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实现栈的基本操作
2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,因此具有线程安全的特性。但通常,由于其性能较低,推荐使用`ArrayDeque`。使用`Stack`类的示例如下: ```java ...
用Java实现栈的所有操作,并用栈实现几个常见算法题
以上就是Java实现栈和队列面试题的主要内容。理解和熟练掌握这些知识点对于Java开发者来说至关重要,因为它们涉及到基础数据结构的运用,能够反映候选人在解决实际问题时的逻辑思维和算法能力。在面试中,候选人可能...
Java 数据结构之 Java 实现栈 Java 数据结构实现栈是 Java 编程语言中的一种基础数据结构。栈是一种抽象数据类型,遵循 FILO(First In Last Out,先进后出)原则,即最后入栈的元素最先出栈。栈的实现有多种方式,...
实现弹栈,进栈,判断栈是否为空或满等功能 Java入门的简单程序
使用java实现栈和队列,通过接口实现多态
用Java实现一个栈
Java提供了`java.util.Stack`类来实现栈。它继承自`Vector`类,因此提供了丰富的线程安全的方法,如`push()`, `pop()`, `peek()`等。在这个计算器项目中,我们可以创建一个栈对象来存储数字和运算符。 3. **表达式...
用java实现的栈Stack类,不继承任何集合类,用对象数组实现
### 栈的Java语言实现详解 #### 一、栈的基本概念 栈是一种特殊的线性表,只允许在表的一端...这些内容不仅有助于理解栈的工作原理,还能帮助读者掌握栈的Java实现技巧,为进一步学习算法和数据结构打下坚实的基础。
在标签中提到了“java 栈”,这暗示了项目的核心部分是如何使用Java实现栈数据结构。在Java中,除了ArrayList,还可以使用LinkedList等数据结构来实现栈。不过,ArrayList通常在空间效率和快速访问上更有优势,因此...
java数字栈和符号栈模拟计算器(中缀表达式) “计算中缀表达式”可以称得上是一个特别经典的关于栈的算法题,几乎在所有数据结构教材中都会涉及,而且很多公司面试或者笔试的时候都会把这道题作为一个考察点。可以说...
3. 如何使用Java实现SIP客户端和服务器端。 4. Eclipse开发环境的使用和调试技巧。 5. Ant构建工具的使用。 6. 日志记录和调试技术。 7. 依赖管理和库的引入。 此外,还可以深入了解网络编程、多线程处理、异常处理...
java实现的顺序栈,部分代码:public class OrderStack { int top=-1; String[] stack; public OrderStack(int initcap)throws Exception{ if(initcap){
栈可以使用数组或链表实现,本文使用 ArrayList 实现栈结构。 栈结构的定义包括以下几个部分: * 入栈(push):将元素添加到栈顶 * 出栈(pop):将栈顶元素取出 * 栈是否为空(isEmpty):判断栈是否为空 * 栈...
Java实现顺序栈是一种常见的数据结构操作,主要用于存储和管理元素序列。栈是一种后进先出(LIFO,Last In First Out)的数据结构,通常用于执行回溯、递归等算法。在Java中,我们可以使用数组或ArrayList来实现顺序...
下面将详细解释这些概念及其Java实现。 **线性表** 是一种基本的数据结构,它是由n(n>=0)个相同类型元素构成的有限序列。线性表中的元素具有顺序关系,即每个元素都有一个前驱和后继,除了第一个元素没有前驱,...
java api 中也有stack,这个是根据stack的特性编写出来的; 此程序在功能上和java提供的功能是一样的,只是实现的方法不一样;