4.1、顺序栈的实现(java实现)
1、实现源码
public class SeqStack {
private final int MaxSize = 8;
private int top; //栈顶
private Object stack[];
/**
* 初始化
*/
public SeqStack() {
this.top = 0;
this.stack = new Object[MaxSize];
}
/**
* 是否为空
* @param seqStack :要判断的堆栈
* @return true :空 false:未空
*/
private boolean isEmpty(SeqStack seqStack){
if (seqStack.top <= 0){
return true;
}
return false;
}
/**
* 是否已满
* @param seqStack :要判断的堆栈
* @return : true :满 false:空
*/
private boolean isFull(SeqStack seqStack){
if (seqStack.top >= MaxSize){
return true;
}
return false;
}
/**
*入栈
* @param seqStack :要入栈的堆栈
* @param element :入栈数据
*/
private void stackPush(SeqStack seqStack,Object element){
if (isFull(seqStack)){
System.out.println("堆栈已满无法插入");
return;
}
seqStack.stack[seqStack.top] = element;
System.out.println(element + " 已入栈");
seqStack.top++;
}
/**
* 出堆栈
* @param seqStack : 要出栈的堆栈
*/
private void stackPop(SeqStack seqStack){
if (isEmpty(seqStack)){
System.out.println("空堆栈无可出的元素");
return;
}
seqStack.top--;
System.out.print(seqStack.stack[seqStack.top] + " ");
}
/**
* 取栈顶元素
* @param seqStack :要取栈顶元素的堆栈
*/
private void stackTop(SeqStack seqStack){
if (isEmpty(seqStack)){
System.out.println("空堆栈,无栈顶元素");
return;
}
System.out.println("取栈顶元素值 :"+ seqStack.stack[seqStack.top - 1]);
}
public static void main(String[] args) {
SeqStack seqStack = new SeqStack();
seqStack.stackPop(seqStack);
seqStack.stackTop(seqStack);
for (int i = 0; i < 9; i++) {
seqStack.stackPush(seqStack,i);
}
seqStack.stackTop(seqStack);
int number = seqStack.top;
System.out.print("元素出栈: ");
for (int i = 0; i < number; i++) {
seqStack.stackPop(seqStack);
}
}
}
2、测试结果
空堆栈无可出的元素
空堆栈,无栈顶元素
0 已入栈
1 已入栈
2 已入栈
3 已入栈
4 已入栈
5 已入栈
6 已入栈
7 已入栈
堆栈已满无法插入
取栈顶元素值 :7
元素出栈: 7 6 5 4 3 2 1 0
4.1、顺序栈的实现(java实现)的更多相关文章
- 数据结构Java实现05----栈:顺序栈和链式堆栈
一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...
- [Java算法分析与设计]--顺序栈的实现
在程序的世界,栈的应用是相当广泛的.其后进先出的特性,我们可以应用到诸如计算.遍历.代码格式校对等各个方面.但是你知道栈的底层是怎么实现的吗?现在跟随本篇文章我们来一睹它的庐山真面目吧. 首先我们先定 ...
- 数据结构——Java实现顺序栈
一.分析 栈是限定仅在表的一端进行插入或删除操作的线性表,对于栈来说,操作端称为栈顶,另一端则称为栈底,栈的修改是按照后进先出的原则进行的,因此又称为后进先出的线性表. 顺序栈是指利用顺序存储结构实现 ...
- 数据结构Java实现03----栈:顺序栈和链式堆栈
一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...
- 使用JAVA数组实现顺序栈
1,首先总结一下线性表(分为顺序表和链接表,[即顺序存储结构和链式存储结构的区别])和栈(顺序栈和链接栈)还有队列(顺序队列和链接队列)的JAVA类库中的实现: java.util.ArrayList ...
- java 实现简单的顺序栈
package com.my; import java.util.Arrays; /** * 顺序栈 * @author wanjn * */ public class ArrayStack { pr ...
- Java栈之顺序栈存储结构实现
一.栈的基本定义 栈是一种数据结构,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入.删除操作的特殊线性表,通常就是在线性表的尾端进行插入.删除操作. 二.顺序栈的实 ...
- 顺序栈--Java实现
/*栈和队列:逻辑结构属于操作受限的线性表 *栈:特点先进后出,只允许在栈顶操作 *栈的实现方式:顺序栈和链栈 *常见的操作:进栈,出栈,获取栈顶,判空,判满,栈的容量 *栈的应用 *1.逆序相关操作 ...
- 顺序栈,链栈,队列java实现
顺序栈 /** * 顺序栈 * */ public class SqStack { //栈的大小 private int maxSize; //栈顶指针 private int top; privat ...
- Java的顺序栈和链式栈
栈的定义 栈是限制在表的一段进行插入和删除的运算的线性表,通常能够将插入.删除的一端为栈顶,例外一端称为栈底,当表中没有任何元素的时候称为空栈. 通常删除(又称"退栈")叫做弹出p ...
随机推荐
- Intellij IDEA 2019.2 设置Git
点击File选择Settings 查找Git 选择Git安装路径bin目录下git.exe并点击text是否可用 选择OK安装完成. IDEA 拉去github 或 gogs上的项目(选择VCS —— ...
- Maven Wrapper(mvnw)
Maven Wrapper Maven Wrapper是一个Maven插件,用于封装提供Maven项目构建时所需要的一切.这么说可能比较抽象,来举个具体的例子吧. 一个Maven项目由多人协作维护,某 ...
- 『深度应用』NLP机器翻译深度学习实战课程·壹(RNN base)
深度学习用的有一年多了,最近开始NLP自然处理方面的研发.刚好趁着这个机会写一系列NLP机器翻译深度学习实战课程. 本系列课程将从原理讲解与数据处理深入到如何动手实践与应用部署,将包括以下内容:(更新 ...
- 剑指Offer(十八):二叉树的镜像
剑指Offer(十八):二叉树的镜像 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/baidu ...
- Redis缓存,持久化,高可用
一,Redis作缓存服务器 本篇博客是接着上一篇博客未分享完的技术点. redis作为缓存服务器是众多企业中的选择之一,虽然该技术很成熟但也是存在一定的问题.就是缓存带来的缓存穿透,缓存击穿, ...
- Oracle数据库之SQLPLUS
三.SQLPLUS SQLPlus 是 Oracle 数据库提供的一个专门用于数据库管理的交互式工具,使用 SQLPlus 可以管理 Oracle 数据库的所有任务,SQLPlus 通过命令的方式 ...
- Leetcode之深度优先搜索(DFS)专题-199. 二叉树的右视图(Binary Tree Right Side View)
Leetcode之深度优先搜索(DFS)专题-199. 二叉树的右视图(Binary Tree Right Side View) 深度优先搜索的解题详细介绍,点击 给定一棵二叉树,想象自己站在它的右侧 ...
- 转载 江南一点雨 一键部署docker
一键部署 Spring Boot 到远程 Docker 容器,就是这么秀! 不知道各位小伙伴在生产环境都是怎么部署 Spring Boot 的,打成 jar 直接一键运行?打成 war 扔到 To ...
- ROS中local costmap的原点坐标系
local costmap是一个依赖于其他坐标系存在的坐标系统,它并不维护自己的坐标系,而是在另一个坐标系中设定坐标原点,然后记下自己的宽与高.它使用数据结构nav_msgs/OccupancyGri ...
- 机器学习性能度量指标:ROC曲线、查准率、查全率、F1
错误率 在常见的具体机器学习算法模型中,一般都使用错误率来优化loss function来保证模型达到最优. \[错误率=\frac{分类错误的样本}{样本总数}\] \[error=\frac{1} ...