0

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 をどのように使用すればよいですか? 出力は、「who are you」ではなく「you are who」のようになります。

私の 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();
            }
}

ありがとう...

4

1 に答える 1

1

前に要素を追加するようにenqueueFirstメソッドを作成します(または最後ではなく前に追加するように変更します)GenericQueueenqueue

  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
    }

残りは問題ないようです。

于 2012-11-13T19:39:01.717 に答える