使用GenericQueue以相反的顺序打印用户输入的单词。 Java的

时间:2012-11-13 19:29:04

标签: java queue stack

我对GenericQueue感到困惑。只添加元素(queue.enqueue)并从中删除元素(queue.dequque),如何从用户输入中显示反向词?

更具体地说,我有以下java代码。

import java.util.Scanner;

public class displayreverse {
public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        GenericQueue<String> queue = new GenericQueue<String>();
        System.out.print("Enter some words: ");
        String words = input.nextLine();

        queue.enqueue(words);
        System.out.println(queue);

    }
}

输出将如下所示:

run:
Enter some words: who are you
Queue; [who are you]

如何使用GenericQueue以反向顺序显示它?输出应该是:“你是谁”而不是“你是谁”

我的GenericQueue类如下:

public class GenericQueue<E> {
    private java.util.LinkedList<E> list = new java.util.LinkedList<E>();
            public void enqueue(E e){
                list.addLast(e);
            }
            public E dequeue(){
                return list.removeFirst();
            }
            public int getSize(){
                return list.size();
            }
            public String toString(){
                return "Queue; " + list.toString();
            }
}

...谢谢

1 个答案:

答案 0 :(得分:1)

enqueueFirst中创建GenericQueue方法,添加前面的元素(或更改enqueue以在前面添加,而不是最后添加)

  public void enqueueFirst(E e){
    list.addFirst(e);
  }

使用enqueueFirst接收所有相同的字词,如下所示:

    System.out.print("Enter some words: ");
    String wordsLine = input.nextLine();
    String[] words  = wordsLine.split(" ");//split the words separated by space
    for(String word: words){
        queue.enqueueFirst(word);//add one word at a time
    }

休息看起来不错。