深入浅析java中的栈结构
短信预约 -IT技能 免费直播动态提醒
深入浅析java中的栈结构?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
java 数据结构中栈结构应用的两个实例
1、单词逆序。
要求从控制台读入一串字符,按回车结束输入,同时显示其逆序字符串。
对于颠倒顺序的操作,用栈来解决是很方便的。具体思想是把字符串中的每一个字符按顺序存入栈中,然后再一个一个的从栈中取出。这时就是按照逆序取出的字符串。
// reverse.java // stack used to reverse a string // to run this program: C>java ReverseApp import java.io.*; // for I/O //////////////////////////////////////////////////////////////// class StackX//定义了栈的基本结构和操作 { private int maxSize;//栈最大值 private char[] stackArray;//栈内用数组存储数据 private int top;//当前栈顶标号,从0开始 //-------------------------------------------------------------- public StackX(int max) // constructor { maxSize = max; stackArray = new char[maxSize]; top = -1; } //-------------------------------------------------------------- public void push(char j) // put item on top of stack { stackArray[++top] = j; } //-------------------------------------------------------------- public char pop() // take item from top of stack { return stackArray[top--]; } //-------------------------------------------------------------- public char peek() // peek at top of stack { return stackArray[top]; } //-------------------------------------------------------------- public boolean isEmpty() // true if stack is empty { return (top == -1); } //-------------------------------------------------------------- } // end class StackX //////////////////////////////////////////////////////////////// class Reverser//封装了单词逆序的操作 { private String input; // input string private String output; // output string //-------------------------------------------------------------- public Reverser(String in) // constructor { input = in; } //-------------------------------------------------------------- public String doRev() // reverse the string { int stackSize = input.length(); // get max stack size StackX theStack = new StackX(stackSize); // make stack for(int j=0; j<input.length(); j++) { char ch = input.charAt(j); // get a char from input theStack.push(ch); // push it } output = ""; while( !theStack.isEmpty() ) { char ch = theStack.pop(); // pop a char, output = output + ch; // append to output } return output; } // end doRev() //-------------------------------------------------------------- } // end class Reverser //////////////////////////////////////////////////////////////// class ReverseApp { public static void main(String[] args) throws IOException { String input, output; while(true) { System.out.print("Enter a string: "); System.out.flush(); input = getString(); // read a string from kbd if( input.equals("") ) // 若没有输入字符串直接按回车,则结束 break; // make a Reverser Reverser theReverser = new Reverser(input); output = theReverser.doRev(); // use it System.out.println("Reversed: " + output); } // end while System.out.println("this is end"); } // end main() //-------------------------------------------------------------- public static String getString() throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s = br.readLine(); return s; } //-------------------------------------------------------------- } // end class ReverseApp ////////////////////////////////////////////////////////////////
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
深入浅析java中的栈结构
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
深入浅析java中的栈结构
深入浅析java中的栈结构?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java 数据结构中栈结构应用的两个实例1、单词逆序。 要求从控制台读入一串字符,按回车结束输入,同
2023-05-31
深入浅析Java的数据结构中的图
本篇文章为大家展示了深入浅析Java的数据结构中的图,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1,摘要:从数据的表示方法来说,有二种表示图的方式:一种是邻接矩阵,其实是一个二维数组;一种是邻接表
2023-05-31
深入浅析Java中 IO流的继承结构
深入浅析Java中 IO流的继承结构?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点:1. 其对称
2023-05-31
深入浅析Java中的构造方法
深入浅析Java中的构造方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。构造函数是一种特殊的函数。其主要功能是用来在创建对象时初始化对象, 即为v对象成员变量赋初始值,总
2023-05-31
深入浅析Java 中的LockSupport
这期内容当中小编将会给大家带来有关深入浅析Java 中的LockSupport,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。LockSupport介绍LockSupport是用来创建锁和其他同步类的基本线
2023-05-31
深入浅析Java 中的CharArrayReader
深入浅析Java 中的CharArrayReader?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。CharArrayReader 介绍CharArrayRead
2023-05-31
深入浅析Java中的 FilterInputStream
这期内容当中小编将会给大家带来有关深入浅析Java中的 FilterInputStream,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。FilterInputStream 介绍FilterInputStr
2023-05-31
深入浅析Java中的Object类
今天就跟大家聊聊有关深入浅析Java中的Object类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中最基本的类j
2023-05-31
深入浅析Java中的链表
本篇文章为大家展示了深入浅析Java中的链表,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。单链表:insertFirst:在表头插入一个新的链接点,时间复杂度为O(1)deleteFirst:删除表
2023-05-31
深入浅析Java中的 concurrency锁
本篇文章给大家分享的是有关深入浅析Java中的 concurrency锁,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。根据锁的添加到Java中的时间,Java中的锁,可以分为"
2023-05-31
深入浅析Java中的 List类
本篇文章给大家分享的是有关深入浅析Java中的 List类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复
2023-05-31
深入浅析Java中的数组
深入浅析Java中的数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数组的用处是什么呢?——当你需要将30个数进行大小排列的时候,用数组这样的数据结构存储是个很好的选择,
2023-05-31
深入浅析Java中的Properties类
今天就跟大家聊聊有关深入浅析Java中的Properties类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java中Properties类的操作 知识学而不用,就等于没用,到
2023-05-31
深入浅析Java中的String类
这期内容当中小编将会给大家带来有关深入浅析Java中的String类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。引题在Java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时
2023-05-31
2024-04-02
深入浅析java并发中的ArrayBlockingQueue
这期内容当中小编将会给大家带来有关深入浅析java并发中的ArrayBlockingQueue,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。java并发之ArrayBlockingQueue详细介绍 Ar
2023-05-31
深入浅析Java中的Condition条件
深入浅析Java中的Condition条件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Condition介绍Condition的作用是对锁进行更精确的控制。Conditi
2023-05-31
深入浅析Java中的装饰器
深入浅析Java中的装饰器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方
2023-05-31
深入浅析Java中的对象流
这期内容当中小编将会给大家带来有关深入浅析Java中的对象流,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java中可以通过对象流将一个序列化的对象保存到硬盘中,或者硬盘中读取一个对象。对象流的存储和读取
2023-05-31
深入浅析Java中的Junit框架
本篇文章为大家展示了深入浅析Java中的Junit框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。junit(单元测试框架)1、目前存在的问题1、目前的测试方法如果需要测试,都需要在main方法上
2023-05-31