堆栈和队列 java
Stack and Queue java
我必须按照此说明创建一个程序。创建一个 Java 堆栈,其中包含用户输入的四 (4) 个书名。一个一个弹出堆栈的元素;每个弹出的元素将被添加到队列中。然后,打印队列的内容。
这里是我提出的代码,但没有得到想要的输出。
import java.util.Scanner;
import java.util.Queue;
import java.util.Stack;
import java.util.LinkedList;
public class books {
public static void main(String[] args) {
Queue book = new LinkedList < String > ();
Stack < String > Title = new Stack < > ();
Scanner user = new Scanner(System.in);
System.out.println("Enter four book titles.");
int b = 4;
for (int i = 1; i <= b; i++) {
System.out.print("Book " + i + ":");
String Enter = user.nextLine();
Title.push(Enter);
Title.pop();
book.offer(Title);
}
System.out.println("New order of books:");
System.out.println(book);
}
}
输出是这样的
Enter four book titles.
Book 1:b1
Book 2:b2
Book 3:b3
Book 4:b4
New order of books:
[b1, b2, b3, b4]
你所做的是每次将整个 Title 堆栈放入队列,因为 pop 方法 returns 第一个要从堆栈中删除的元素
还有....
您必须首先将所有元素放入堆栈,然后再创建一个循环将它们添加到队列,因为这样您将第一个元素添加到堆栈也作为队列中的第一个元素
在 int b=4
之后,这应该是您的代码:
for(int i=1; i<=b;i++){
System.out.print("Book " + i + ":");
String Enter = user.nextLine();
Title.push(Enter);
}
for(int i=1;i<=b;i++){
book.offer(Title.pop);
}
而不是关闭报价(returns 布尔值)你也可以使用 add() 如果容器的容量已满则抛出异常,但是你这里的程序非常简单所以没有办法这样做发生
我必须按照此说明创建一个程序。创建一个 Java 堆栈,其中包含用户输入的四 (4) 个书名。一个一个弹出堆栈的元素;每个弹出的元素将被添加到队列中。然后,打印队列的内容。
这里是我提出的代码,但没有得到想要的输出。
import java.util.Scanner;
import java.util.Queue;
import java.util.Stack;
import java.util.LinkedList;
public class books {
public static void main(String[] args) {
Queue book = new LinkedList < String > ();
Stack < String > Title = new Stack < > ();
Scanner user = new Scanner(System.in);
System.out.println("Enter four book titles.");
int b = 4;
for (int i = 1; i <= b; i++) {
System.out.print("Book " + i + ":");
String Enter = user.nextLine();
Title.push(Enter);
Title.pop();
book.offer(Title);
}
System.out.println("New order of books:");
System.out.println(book);
}
}
输出是这样的
Enter four book titles.
Book 1:b1
Book 2:b2
Book 3:b3
Book 4:b4
New order of books:
[b1, b2, b3, b4]
你所做的是每次将整个 Title 堆栈放入队列,因为 pop 方法 returns 第一个要从堆栈中删除的元素
还有....
您必须首先将所有元素放入堆栈,然后再创建一个循环将它们添加到队列,因为这样您将第一个元素添加到堆栈也作为队列中的第一个元素
在 int b=4
之后,这应该是您的代码:
for(int i=1; i<=b;i++){
System.out.print("Book " + i + ":");
String Enter = user.nextLine();
Title.push(Enter);
}
for(int i=1;i<=b;i++){
book.offer(Title.pop);
}
而不是关闭报价(returns 布尔值)你也可以使用 add() 如果容器的容量已满则抛出异常,但是你这里的程序非常简单所以没有办法这样做发生