JAVA-用栈机制实现单词逆序排列

就是IO那一段还没学到。

之前的PUCH,POP,STRING和CHAR的关系搞得懂了。

学到一个定位STRING当中CHAR的转换函数。

 char = String.charAt(x)

  1 import java.io.*;
  2
  3
  4 class stackString
  5 {
  6     private int maxSize;
  7     private char[] stackX;
  8     private int top;
  9
 10     public stackString(int s)
 11     {
 12         maxSize = s;
 13         stackX = new char[maxSize];
 14         top = -1;
 15     }
 16     public void push(char j)
 17     {
 18         stackX[++top] = j;
 19     }
 20     public char pop()
 21     {
 22         return stackX[top--];
 23     }
 24     public char peek()
 25     {
 26         return stackX[top];
 27     }
 28     public boolean isEmpty()
 29     {
 30         return (top == -1);
 31     }
 32     public boolean isFull()
 33     {
 34         return (top == maxSize - 1);
 35     }
 36 }
 37 class Reverser
 38 {
 39     private String input;
 40     private String output;
 41
 42     public Reverser(String in)
 43     {
 44         input = in;
 45     }
 46     public String doRev()
 47     {
 48         int stackSize = input.length();
 49         stackString stackStringRev = new stackString(stackSize);
 50
 51         for(int i = 0; i < stackSize; i++)
 52         {
 53             char charInString = input.charAt(i);
 54             stackStringRev.push(charInString);
 55         }
 56         output = "";
 57         while(!stackStringRev.isEmpty())
 58         {
 59             char ch = stackStringRev.pop();
 60             output = output + ch;
 61         }
 62         return output;
 63
 64     }
 65
 66 }
 67 public class StackApp {
 68
 69     /**
 70      * @param args
 71      */
 72     public static void main(String[] args) throws IOException {
 73         // TODO Auto-generated method stub
 74         String input, output;
 75
 76         while(true)
 77         {
 78             System.out.print("Enter a string: ");
 79             System.out.flush();
 80             input = getString();
 81             if(input.equals(""))
 82                 break;
 83
 84             Reverser testStringRev = new Reverser(input);
 85             output = testStringRev.doRev();
 86             System.out.println("Reversed : " + output);
 87
 88
 89         }
 90
 91     }
 92     public static String getString() throws IOException
 93     {
 94         InputStreamReader isr = new InputStreamReader(System.in);
 95         BufferedReader br = new BufferedReader(isr);
 96         String s = br.readLine();
 97         return s;
 98
 99     }
100
101 }

 

时间: 2024-11-06 07:15:16

JAVA-用栈机制实现单词逆序排列的相关文章

在C++数据结构中,关于单向链表的排序顺序控制,如何让单向链表按照逆序排列?

问题描述 在C++数据结构中,关于单向链表的排序顺序控制,如何让单向链表按照逆序排列? 在C++数据结构中,关于单向链表的排序顺序控制,如何让单向链表按照逆序排列? 解决方案 http://blog.163.com/lixiangqiu_9202/blog/static/53575037201187102524490/ if(p->next->data<q->next->data) -> if(p->next->data>q->next->

strlen-C语言字符串单词逆序输出

问题描述 C语言字符串单词逆序输出 想要实现字符串里的单词逆序输出,如 给定"how are you",应输出"you are how" 下面的代码想要利用递归算法实现,但发现运行之后没实现,求解!万分感谢! #include<stdio.h> #include<string.h> void fun(char *p,int i,int len); int main() { char a[50]="how are you";

java实现单链表之逆序_java

下面一段代码准确的介绍了java实现单链表逆序,具体内容就不做详解了,有需要的朋友可以直接拷贝了 package com.ckw.mianshi; /** * java 实现单链表的逆序 * @author Administrator * */ public class SingleLinkedReverse { class Node{ int data; Node next; public Node(int data){ this.data = data; } } public static

java递归法求字符串逆序_java

本文实例讲述了java递归法求字符串逆序的方法.分享给大家供大家参考.具体实现方法如下: public static String reverseString(String x) { if(x==null || x.length()<2) return x; return reverseString(x.substring(1,x.length()))+ x.charAt(0); } 希望本文所述对大家的java程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课

arraylist-java 如何对 list 对象降序排列

问题描述 java 如何对 list 对象降序排列 package test.tool.gui.dbtool.util; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test { public static void main(String[] args) { List<Student> lis

word逆序打印功能让文件打印省时省心

用Word进行文字处理,打印时系统默认从第一页开始.这样在打印多页文档时,很多打印机会把第一页放在最底下,最后一页放在最上面.最终用户还要动手再逆序排列一下,然后才能装订成册,显得比较麻烦. 遇到这种不能自动按逆序排列的打印机,打印时我们可以这样设置一下.单击"文件"→"打印",弹出"打印"对话框. 打印 单击对话框左下脚 的"选项"按钮,弹出"打印"选项的对话框. 选项 选中"逆页序打印&quo

Word打印技巧:页序排列和双面打印技巧

输出文档按页序排列 我们平时用电脑的时候可能都少不了打印材料,Word是我们平常用的最多的Office软件之一,那么我们在用Word打印文档的时候要注意哪些问题,可以使我们的打印更加简单有效,来提高我们的办公效率呢? 比如,如果我们想使Word输出文档按页序排列,该怎么办呢? 我们打印一篇有很多页的文档时,Word默认总是从第一页打印到最后一页,所以文档打印完后是最后一页在最上面,第一页在最下面,是按页号的逆序排列的.现在有一部分激光打印机可以使输出的文档按页号正序排列,或者有的打印机有两个输出

[华为机试练习题]24.删除链表中的重复节点、剩余节点逆序输出

题目 描述: 题目描述: 输入一个不带头节点的单向链表(链表的节点数小于100),删除链表中内容重复的节点(重复的节点全部删除),剩余的节点逆序倒排. 要求实现函数: void vChanProcess(strNode * pstrIn,strNode * pstrOut); [输入] pstrIn:输入一个不带头节点的单向链表 [输出] pstrOut:删除内容重复的节点(重复的节点全部删除),剩余节点逆序输出(不带头节点,链表第一个节点的内存已经申请). [注意]只需要完成该函数功能算法,中

指针-C语言,请问这个逆序输出的程序哪里错了

问题描述 C语言,请问这个逆序输出的程序哪里错了 #include int main(void) { char ar[] = "abc"; char ar1[4] = {0}; //设置指针p指向数组ar的首地址 char *p = ar; //使指针p指向数组ar的最后一个有效字符 for (; *p++ != '';) ; p--; //获取数组ar的长度 int i,j; i = strlen(ar); //将逆序排列存储到数组ar1中 for (j = 0; j < i;