
栈的应用,java用数组实现
发布日期:2021-05-04 09:31:26
浏览次数:14
分类:技术文章
本文共 2556 字,大约阅读时间需要 8 分钟。
p
ackage com.demo;import java.util.Scanner;public class ArrayStackDemo { public static void main(String[] args) { //玩一把 ArrayStack stack = new ArrayStack( 4 ); String key=""; boolean loop=true;//控制是否退出菜单 Scanner scanner = new Scanner(System.in ); while (loop){ System.out.println( "show:表示显示栈" ); System.out.println( "exit:表示退出" ); System.out.println( "push:表示入栈" ); System.out.println( "pop:表示出栈" ); System.out.println( "请输入你的条件" ); //判断输入的字符 key=scanner.next(); switch (key){ case "show": stack.list(); break; case "exit": scanner.close(); loop=false; break; case "push": System.out.println( "请输入一个数" ); int value=scanner.nextInt(); stack.push( value); break; case "pop": try{ int result=stack.pop(); System.out.println(result); }catch (Exception e){ System.out.println( e.getMessage() ); } stack.pop(); break; default: break; } } System.out.println( "程序退出~~~" ); }}//用一个类表示栈class ArrayStack{ private int maxSize;//栈的大小 private int top=-1;//表示栈顶,初始化为-1 private int[] stack;//用数组模拟栈 //构造器 public ArrayStack(int maxSize){ this.maxSize=maxSize; //初始化数组 stack=new int[this.maxSize]; } //栈满 public boolean isFull(){ return top==maxSize-1; } //栈空 public boolean isEmpty(){ return top==-1; } //入栈 public void push(int value){ //判断栈满 if(isFull()){ System.out.println( "栈满" ); return; } //入栈 top++; stack[top]=value; }// 出栈 public int pop(){ if(isEmpty()){ //异常处理 throw new RuntimeException("栈空"); } //出栈先出,后减 int value=stack[top]; top--; return value; }//显示栈的情况 public void list(){ if (isEmpty()){ System.out.println( "栈空,没有数据" ); return; } //需要从栈顶显示数据 for (int i = top; i>=0 ; i--) { System.out.printf("stack[%d]=%d\n",i, stack[i] ); } }}
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月22日 09时05分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
使用开源可视化工具来理解你的 Python 代码 | Linux 中国
2019-03-03
【2021 ECUG Con】聚势而来,与你相约花开时
2019-03-03
硬核观察 | 有人在比特币骗局中损失了 10 个比特币
2019-03-03
初识 Python: global 关键字 | Linux 中国
2019-03-03
基于日出和日落时间自动切换到明/暗 Gtk 主题 | Linux 中国
2019-03-03
FreeDOS 的简单介绍 | Linux 中国
2019-03-03
查看一个归档或压缩文件的内容而无需解压它 | Linux 中国
2019-03-03
极致技术探索:显卡工作原理 | Linux 中国
2019-03-03
如何在 Linux 中不使用功能键在 TTY 之间切换 | Linux 中国
2019-03-03
如何在 Ubuntu 系统中添加一个辅助 IP 地址 | Linux 中国
2019-03-03
LCTT 2018:五周年纪念日 | Linux 中国
2019-03-03
【每日安全资讯】安全研究员发现39万个网站因公开的.git repo处于危险中
2019-03-03
使用 top 命令了解 Fedora 的内存使用情况 | Linux 中国
2019-03-03
Bat:一种具有语法高亮和 Git 集成的 Cat 类命令 | Linux 中国
2019-03-03
在 Linux 上操作目录 | Linux 中国
2019-03-03
如何禁用 Ubuntu 服务器中终端欢迎消息中的广告 | Linux 中国
2019-03-03
【每日安全资讯】一个让你用微信支付的勒索病毒 一场黑吃黑的表演
2019-03-03