网站首页 > java教程 正文
1.栈的定义
:栈(Stack)又名堆栈,是允许在同一端进行插入和删除操作的特殊线性表。其中,允许进行插入和删除操作的一段交租栈顶(Top),另一端叫作栈顶(Bottom),栈顶固定,栈顶浮动。栈中的元素个数为零时,该栈叫作空栈。插入一般交租进栈(Push),删除叫作退栈(Pop)。栈也叫作后进先出的线性表。具体数据结构如下:
2.Java实现栈
栈的数据结构如下:
要实现一个栈,需先实现一下核心方法:
- push() :向栈中压入一个数据,先入栈的数据在最下面
- pop() :弹出栈顶数据,即移除栈顶数据
- peek() :返回当前的栈顶数据
定义栈的数据结构
public class Stack<E> {
private Object[] data=null;
private int maxSize=0;//栈的容量
private int top=-1;//栈顶指针
//构造函数:根据指定的size初始化栈
Stack(){
this(10);
}
Stack(int initialSize){
if (initialSize>=0){
this.maxSize=initialSize;
data=new Object[initialSize];
top=-1;
}else {
throw new RuntimeException("初始化大小不能小于0"+initialSize);
}
}
定义栈push方法
public boolean push(E e){
if (top==maxSize-1){
throw new RuntimeException("栈已满,无法继续将元素入栈!");
}else {
data[++top]=e;
return true;
}
}
定义栈pop方法
public E pop(){
if (top==-1){
throw new RuntimeException("栈为空!");
}else {
return (E)data[top--];
}
}
定义栈peek方法
public E peek(){
if (top==-1){
throw new RuntimeException("栈为空!");
}else {
return (E)data[top];
}
}
私信666领取资料
猜你喜欢
- 2024-11-12 本地方法栈、JVM栈、本地内存和JVM Heap的区别与关系
- 2024-11-12 Java基础之堆、栈、方法区、类加载器——JVM内存模型分析
- 2024-11-12 java之栈内存与堆内存(栈内存 和堆内存)
- 2024-11-12 深入了解Java虚拟机栈以及内存模型
- 2024-11-12 Java虚拟机栈区域(虚拟机栈描述的是java方法执行的内存模型)
- 2024-11-12 一文读懂Java的“栈内存”[Stack]和“堆空间”[Heap]
- 2024-11-12 JVM 内存结构(jvm内存结构及作用)
- 2024-11-12 「JVM系列」 从一到掌握JVM系列之Java虚拟机栈
- 2024-11-12 答读者问:Java 里的堆内存和栈内存是什么意思?
- 2024-11-12 Java中堆和栈的区别(java中堆和栈的区别在哪)
你 发表评论:
欢迎- 06-15Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 06-15推荐一款超棒的SpringCloud 脚手架项目
- 06-15IDEA将项目打包成jar包(idea打包普通java项目)
- 06-15Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 06-15记录Dockerfile将jar包构建成部署所需的镜像
- 06-15项目基础部署汇总八---linux下xxl-job安装
- 06-15Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 06-15终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 最近发表
-
- Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 推荐一款超棒的SpringCloud 脚手架项目
- IDEA将项目打包成jar包(idea打包普通java项目)
- Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 记录Dockerfile将jar包构建成部署所需的镜像
- 项目基础部署汇总八---linux下xxl-job安装
- Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 如何将本地JAR文件添加到Maven项目中
- Java 类隔离应用:多 Jar 包支持(java接口隔离原则)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)