这篇文章主要介绍了Java中使用数组实现栈数据结构实例,本文先是讲解了实现栈至少应该包括以下几个方法等知识,然后给出代码实例,需要的朋友可以参考下
栈是Java语言中最重要的数据结构之一,它的实现,至少应该包括以下几个方法:
1.pop() 出栈操作,弹出栈顶元素。
2.push(E e) 入栈操作
3.peek() 查看栈顶元素
4.isEmpty() 栈是否为空
另外,实现一个栈,还应该考虑到几个问题:
1.栈的初始大小以及栈满以后如何新增栈空间
2.对栈进行更新时需要进行同步
简单示例,使用数组实现栈,代码如下:
public class Stack { // Java 不支持泛型数组,如需使用,请使用Java提供的容器
private Object[] stack;
// 栈的默认初始大小
private static final int INIT_SIZE = 2;
// 栈顶索引
private int index;
public Stack() {
stack = new Object[INIT_SIZE];
index = -1;
}
/**
* 构造方法
*
* @param initSize
* 栈的初始大小
*/
public Stack(int initSize) {
if (initSize throw new IllegalArgumentException();
}
stack = new Object[initSize];
index = -1;
}
/**
* 出栈操作
*
* @return 栈顶对象
*/
public synchronized E pop() {
if (!isEmpty()) {
E temp = peek();
stack[index--] = null;
return temp;
}
return null;
}
/**
* 入栈操作
*
* @param obj
* 等待入栈的对象
*/
public synchronized void push(E obj) {
if (isFull()) {
Object[] temp = stack;
// 如果栈满,则创建空间为当前栈空间两倍的栈
stack = new Object[2 * stack.length];
System.arraycopy(temp, 0, stack, 0, temp.length);
}
stack[++index] = obj;
}
/**
* 查看栈顶对象
*
* @return 栈顶对象
*/
public E peek() {
if (!isEmpty()) {
return (E) stack[index];
}
return null;
}
/**
* 查看栈是否为空
*
* @return 如果栈为空返回true,否则返回false
*/
public boolean isEmpty() {
return index == -1;
}
/**
* 查看栈是否满
*
* @return 如果栈满返回true,否则返回false
*/
public boolean isFull() {
return index >= stack.length - 1;
}
}
上一篇:java网络之基于UDP的聊天程序示例解析下一篇:Java泛型映射不同的值类型详解及实例代码 热门搜索:
数据结构栈
栈数据结构
java数据结构
堆栈数据结构
数组实现
相关文章
Java中使用数组实现栈数据结构实例
2021-11-05阅读(5065)评论(0)推荐()这篇文章主要介绍了Java中使用数组实现栈数据结构实例,本文先是讲解了实现栈至少应该包括以下几个方法等知识,然后给出代码实例,需要的朋友可以参考下
java 数据结构中栈结构应用的两个实例
2021-11-15阅读(4161)评论(0)推荐()这篇文章主要介绍了java 数据结构中栈结构应用的两个实例的相关资料,需要的朋友可以参考下
java数据结构之java实现栈
2021-09-28阅读(6086)评论(0)推荐()这篇文章主要介绍了java数据结构实现栈,需要的朋友可以参考下
Java数据结构之栈的基本定义与实现方法示例
2021-10-06阅读(5932)评论(0)推荐()这篇文章主要介绍了Java数据结构之栈的基本定义与实现方法,简单描述了数据结构中栈的功能、原理,并结合java实例形式分析了栈的基本定义与使用方法,需要的朋友可...
PHP中使用数组实现堆栈数据结构的代码
2021-10-09阅读(5724)评论(0)推荐()堆栈是一种数据结构的实现形式,是广泛用来存取数据的一种容器
java 数据结构中栈和队列的实例详解
2021-10-19阅读(5106)评论(0)推荐()这篇文章主要介绍了java 数据结构中栈和队列的实例详解的相关资料,主要使用数组与线性表的方法来实现,需要的朋友可以参考下
Java数据结构之链表、栈、队列、树的实现方法示例
2021-10-12阅读(10005)评论(0)推荐()这篇文章主要介绍了Java数据结构之链表、栈、队列、树的实现方法,结合实例形式分析了Java数据结构中链表、栈、队列、树的功能、定义及使用方法,需要的朋友可以参...
取消
提交评论