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实现)的更多相关文章

  1. 数据结构Java实现05----栈:顺序栈和链式堆栈

    一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...

  2. [Java算法分析与设计]--顺序栈的实现

    在程序的世界,栈的应用是相当广泛的.其后进先出的特性,我们可以应用到诸如计算.遍历.代码格式校对等各个方面.但是你知道栈的底层是怎么实现的吗?现在跟随本篇文章我们来一睹它的庐山真面目吧. 首先我们先定 ...

  3. 数据结构——Java实现顺序栈

    一.分析 栈是限定仅在表的一端进行插入或删除操作的线性表,对于栈来说,操作端称为栈顶,另一端则称为栈底,栈的修改是按照后进先出的原则进行的,因此又称为后进先出的线性表. 顺序栈是指利用顺序存储结构实现 ...

  4. 数据结构Java实现03----栈:顺序栈和链式堆栈

    一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...

  5. 使用JAVA数组实现顺序栈

    1,首先总结一下线性表(分为顺序表和链接表,[即顺序存储结构和链式存储结构的区别])和栈(顺序栈和链接栈)还有队列(顺序队列和链接队列)的JAVA类库中的实现: java.util.ArrayList ...

  6. java 实现简单的顺序栈

    package com.my; import java.util.Arrays; /** * 顺序栈 * @author wanjn * */ public class ArrayStack { pr ...

  7. Java栈之顺序栈存储结构实现

    一.栈的基本定义 栈是一种数据结构,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入.删除操作的特殊线性表,通常就是在线性表的尾端进行插入.删除操作. 二.顺序栈的实 ...

  8. 顺序栈--Java实现

    /*栈和队列:逻辑结构属于操作受限的线性表 *栈:特点先进后出,只允许在栈顶操作 *栈的实现方式:顺序栈和链栈 *常见的操作:进栈,出栈,获取栈顶,判空,判满,栈的容量 *栈的应用 *1.逆序相关操作 ...

  9. 顺序栈,链栈,队列java实现

    顺序栈 /** * 顺序栈 * */ public class SqStack { //栈的大小 private int maxSize; //栈顶指针 private int top; privat ...

  10. Java的顺序栈和链式栈

    栈的定义 栈是限制在表的一段进行插入和删除的运算的线性表,通常能够将插入.删除的一端为栈顶,例外一端称为栈底,当表中没有任何元素的时候称为空栈. 通常删除(又称"退栈")叫做弹出p ...

随机推荐

  1. python 函数和函数名的应用

    一.函数 1.函数定义 def 关键字 -- 定义 func 函数名 -- 和变量定义规则一样 ()必须要写格式 : 声明语句结束 def my_len(): ​ 函数体 def func(a:int ...

  2. (三十九)c#Winform自定义控件-面包屑导航

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  3. Docker系列之.NET Core入门(三)

    前言 在Docker生态系统中除了上一节所讲解的基本概念,还有其他专业术语,本文我们将一笔带过,同时会开始陆续进入到在.NET Core中使用Docker. 专业术语 Docker Engine(Do ...

  4. 在CentOS 7 / RHEL 7安装PostgreSQL 10

    CentOS 到了7.x版本, PostgreSQL也来到了10.x版本. 前些天MySQL都直接跨到了8.0版本. 本文是一篇在CentOS 7.4上安装安装PostgreSQL 10.3 的教程. ...

  5. 【Python3爬虫】快就完事了--使用Celery加速你的爬虫

    一.写在前面 在上一篇博客中提到过对于网络爬虫这种包含大量网络请求的任务,是可以用Celery来做到加速爬取的,那么,这一篇博客就要具体说一下怎么用Celery来对我们的爬虫进行一个加速! 二.知识补 ...

  6. Web前端和Web后端的区分

    版权声明:本文为CSDN博主「十豆三展」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/zz1399590022 ...

  7. 掌握 Maven 私服

    前言 在 Java EE 开发中,我们使用 Maven 构建工具主要来管理项目的第三方库的依赖,以及公司内部其他项目服务的依赖.因此 Maven 私服就是必不可少的一环,本文主要对 Maven 私服的 ...

  8. Java 并发编程(一):摩拳擦掌

    这篇文章的标题原本叫做——Java 并发编程(一):简介,作者名叫小二.但我在接到投稿时觉得这标题不够新颖,不够吸引读者的眼球,就在发文的时候强行修改了标题(也不咋滴). 小二是一名 Java 程序员 ...

  9. 变量声明关键字var ,let,const

    今天带大家了解的是比较有趣的几个变量声明关键字var,let,const. 我们在最初接触JS的时候,变量是我们重要的一个组成部分,在使用时规定必须要先进行声明,否则网页将会报错: console.l ...

  10. Python之流程控制——if...else...

    Python之流程控制--if...else... 一.流程控制 假如把程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分岔口.当遇到分岔口时,你得判断哪条岔路是你要走的路,如果我们想让程 ...