新的改变

栈是线性数据结构的一种,相当于一个箱子,如果向往箱子里放书,第一本书肯定是放入箱底,但是取出来的时候是从最上面开始取的,并拿不到最里面的东西,所以元素是先进后出的,栈最上面的元素为栈顶元素。

以下是基于数组对栈的简单实现
package com.jym.stack;public class MyStack {private int[] elements;//初始化数组public MyStack() {this.elements = new int[0];}//进栈public void push(int element){//创建一个新数组 int[] newArr = new int[elements.length+1];//把原数组替换进新数组for (int i = 0; i < elements.length; i++) {newArr[i] = elements[i];}//最后的元素为进栈元素newArr[elements.length] = element;elements = newArr;}public int Poo(){//空栈抛出异常if(elements.length==0){throw new RuntimeException("stack is empty");}//最后元素为出栈元素int poo = elements[elements.length-1];//copy到新数组int[] newArr = new int[elements.length-1];for (int i = 0; i < newArr.length; i++) {newArr[i] = elements[i];}elements = newArr;return poo;}public boolean stackIsEmpty(){return elements.length==0;}public int getPoo(){if(elements.length==0){throw new RuntimeException("stack is empty");}return elements[elements.length-1];}}

测试代码:

package com.jym.test;import com.jym.stack.MyStack;public class Main {public static void main(String[] args) {MyStack ms = new MyStack();ms.push(9);//进栈 9 8 7ms.push(8);ms.push(7);System.out.println(ms.Poo()+"出栈");//出栈System.out.println(ms.stackIsEmpty());System.out.println(ms.Poo()+"出栈");System.out.println("当前栈顶元素为"+ms.getPoo());//查看栈顶元素System.out.println(ms.Poo()+"出栈");System.out.println(ms.stackIsEmpty());}}

测试结果:

感谢您的观看!!

数据结构栈的简单实现(JAVA)相关推荐

  1. 栈的top指针指向哪里_数据结构-栈

    数据结构-栈 更简单的介绍,在<程序是怎样跑起来的>一书中有简要形象的说明 一.栈的基本概念 栈是一种特殊的线性表,其插入删除操作都只能在表的尾部进行. 栈中允许插入.删除操作的一端称为栈 ...

  2. 基于java的数据结构学习——数组实现的栈以及简单应用C++实现

    基于java的数据结构学习--数组实现的栈以及简单应用的 C++ 实现 源码: // // Created by PC-Saw on 2019/1/3. //#ifndef DATA_STRUCTUR ...

  3. 数据结构笔记--栈的总结及java数组实现简单栈结构

    杂谈"栈"结构: 栈(Stack)是一种插入删除操作都只能在一个位置上进表,这个位置位于表的末端,叫做栈顶(Top). 对栈的基本操作有push和pop,表示进栈和出栈.也就相当于 ...

  4. 基于java的数据结构学习——数组实现的栈以及简单应用

    栈 Stack 栈是一种线性结构 相比数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从一端取出元素 这一端称为栈顶 栈是一种后进先出的数据结构 栈的应用 无处不在的Undo操作(撤销) 括 ...

  5. java语言链栈_Java语言实现数据结构栈代码详解

    近来复习数据结构,自己动手实现了栈.栈是一种限制插入和删除只能在一个位置上的表.最基本的操作是进栈和出栈,因此,又被叫作"先进后出"表. 首先了解下栈的概念: 栈是限定仅在表头进行 ...

  6. 8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,数据结构“栈”实现

    是使用递归方法实现回溯算法的,在第一次使用二维矩阵的情况下,又做了一次改一维的优化 但是算法效率仍然差强人意,因为使用递归函数的缘故 下面提供另一种回溯算法的实现,使用数据结构"栈" ...

  7. 【数据结构】栈的简单理解以及对栈的基本操作

    一.静态栈的简单操作 先来简单的了解一下栈 1.栈:一种特殊的线性表,其实只允许在固定的一端进行插入或删除操作.进行数据插入和删除的一端称为栈顶,另一端称为栈底.不含任何元素的栈称为空栈,栈又称为 后 ...

  8. 大话数据结构(五)——栈的两种java实现方式

    在我们生活当中经常会看到这样一种操作,比如我们往一个空羽毛球盒子里面放羽毛球(个人比较喜欢羽毛球,嘿嘿),放完后再将羽毛球一个一个取出的时候会发现,最先放进去的羽毛球往往最后才取出来,相反,最后放入的 ...

  9. 数据结构栈队列链表数组

    目录: 数据结构 栈(stack) 队列 链表 数组 数据结构 数据结构是什么 简单来说,数据结构就是设计数据以何种方式存储在计算机中 比如:列表,集合,与字典等都是一种数据结构 程序 = 数据结构 ...

最新文章

  1. mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...
  2. 直方图和直条图_绘图专题 | 条形图/直方图傻傻分不清楚
  3. 在.Net Core 3.0中尝试新的System.Text.Json API
  4. leetcode337. 打家劫舍 III(dfs)
  5. RabbitMq(十五)消息的追踪查看配置及查看方法
  6. 华为百度美团驰援抗击疫情;自由软件基金会建议开源 Windows 7;印度超越美国成第二大智能手机市场 | 极客头条...
  7. 杭电多校HDU 6601 Keen On Everything But Triangle(主席树)题解
  8. Web前端大作业 HTML+CSS+JS 防天天生鲜官网 9页 (1)
  9. Pinterest和Instagram哪个更好用?姐妹还是天敌...
  10. 【Python数据分析】二手车价格预测
  11. 为什么电脑桌面无计算机图标,我的电脑桌面图标都没名字了为什么
  12. nodejs 项目目录结构设计
  13. 单片机c语言编写一个时钟程序,单片机基于c语言编写时钟.doc
  14. jzoj 4399: 加减乘除模五则运算
  15. Q版人物动作怎么画?如何画好Q版人物动作?
  16. 80+的AI音频工具你值得拥有
  17. oracle左关联+号表示方式
  18. 王道数据结构p41——22
  19. python import和from xx import xx的理解
  20. 【应急响应】Linux应急响应的姿势

热门文章

  1. Skeleton Screen — 骨架屏
  2. 西电操作系统上机实验3
  3. 三人行-有分享才会有行动
  4. 纪中GMOJ语言模块题目1009
  5. 推荐两款简单好用的扒站工具
  6. you will need to restart eclipse for the changes to take effect. would you like to restart now?
  7. google浏览器(chrome)登录、同步
  8. cdq分治和整体二分
  9. markdown文本居中,段首缩进的方法
  10. Excel如何把全部符合单个条件的数据提取出