package org.stack;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream.GetField;
import java.util.Scanner;
class StackX {
private int maxSize;
private char[] stackArray;
private int top;
public StackX(int max)
{
maxSize = max;
stackArray = new char[maxSize];
top=-1;
}
public void push(char c)
{
stackArray[++top]=c;
}
public char pop()
{
return stackArray[top--];
}
public char peek()
{
return stackArray[top];
}
public boolean isEmpty()
{
return (top==-1);
}
}
class Reverse
{
private String input;
private String output;
public Reverse(String in)
{
input = in;
}
public String doRev()
{
int stackSize = input.length();
StackX theStack = new StackX(stackSize);
for(int i=0;i<stackSize;i++)
{
char ch = input.charAt(i);
theStack.push(ch);
}
output=" ";
while(!theStack.isEmpty())
{
char ch = theStack.pop();
output = output+ch;
}
return output;
}
}
public class ReversApp
{
public static void main(String[] args) throws IOException {
String input,output;
while(true)
{
System.out.println("Enter a string:");
//Scanner in = new Scanner(System.in);
input = getString();
if(input.equals(""))
{
break;
}
Reverse r = new Reverse(input);
output = r.doRev();
System.out.println(output);
}
}
private static String getString() throws IOException {
InputStreamReader is = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
return s;
}
}
分享到:
相关推荐
本篇将详细探讨如何实现栈的存储结构以及如何利用栈进行一系列操作,如进栈、出栈、获取栈顶元素,同时还将展示如何利用栈解决实际问题,如字符串逆序输出和括号匹配,以及对算术表达式求值。 首先,栈的存储结构...
在本实验报告中,主题是关于数据结构中的栈及其应用,具体涉及了栈的存储结构实现、字符串逆序输出、括号匹配检查以及选做任务——算术表达式的求值。以下是详细的知识点: 1. **栈的存储结构**: - 实验报告中...
如果此时字符串末尾的'@'出现,且已构建的序列1与序列2逆序相等,则字符串符合要求。 2. **栈的出栈序列** 当给定进栈序列ABCD时,所有可能的出栈序列需遵循后进先出(LIFO)原则。可能的出栈序列包括: - ABCD ...
实验要求实现这些基本操作,并利用栈解决实际问题,如字符串逆序、括号匹配和算术表达式求值。 在系统分析部分,数据结构设计为两种类型:浮点型栈用于基本操作,字符型栈用于特定应用。栈的基本操作包括: 1. 进栈...
文档覆盖了多个数据结构和算法的基础操作,包括线性表、栈、队列、字符串、树(特别是二叉树)以及几种常见的排序算法。 #### 二、线性表及其操作 线性表是一种基本的数据结构,本文档提供了多种线性表的操作实现...
3. 进栈序列和出栈序列的关系可以通过逆序操作来判断。 字符串处理: 1. C语言中,字符串以字符数组的形式存储。 2. 空串是无字符的串,空白串包含一个或多个空格,串相等指两个串的内容相同,模式匹配是查找子串在...
通过这样的实现,我们可以处理各种需要栈操作的问题,例如逆序输出字符串、计算后缀表达式等。在实际编程中,可以根据需求调整栈的容量或增加其他功能,如检测栈是否为空、获取栈的当前深度等。
这些题目涵盖了计算机科学和数据结构中的多个核心概念,包括二叉树遍历、字符串编码、概率计算、排序算法、图论、动态规划以及优化问题。下面是对这些知识点的详细解释: 1. **二叉树遍历**:中序遍历和后序遍历...
1. 设计一个字符型链栈:虽然示例代码中栈的数据类型为整型,但可以扩展到其他类型,如字符型,以便处理字符串或其他字符数据。 2. 编写基础操作的程序:包括`Push`(进栈)、`Pop`(出栈)、`ShowStack`(显示栈中...
12. **Excel数字字符串输入**:要在Excel单元格中输入数字字符串070615,需要在前面加单引号,以防止Excel将其识别为日期,因此答案是D:'070615。 13. **微型计算机发展**:微处理器的发展是微型计算机发展的主要...
例如,在括号匹配中,栈可以用来检查一个字符串中的左括号和右括号是否正确配对。在编译器设计中,栈被用于存储函数调用的返回地址,以便在递归调用结束后能够恢复正确的执行流程。在计算机图形学中,深度缓冲区(Z-...