[英]Display all elements of queue using linked list,
我正在嘗試打印隊列的值,但不知道為什么我會出錯 output。 我用過 java 你能幫我解決這個問題嗎? 我得到的 output 是 7 7 但預計 output 是 7 5 8 6 7
public class Main
{
public static class Node{
public static int data;
public static Node next;
}
public static Node rear = null;
public static Node front = null;
public static void enqueue(int data){
Node temp = new Node();
temp.data = data;
temp.next = null;
if(rear == null){
front = temp;
rear = temp;
}
else{
rear.next = temp;
rear = temp;
}
}
public static void print(){
System.out.println(front.data);
}
public static void printall(){
Node dummy = front;
while(dummy != rear){
System.out.println(dummy.data);
dummy = dummy.next;
}
}
public static void main(String[] args) {
enqueue(5);
enqueue(8);
enqueue(6);
enqueue(7);
print();
printall();
}
}
預期的 output 為 5 5 8 6 7,因為 print() 輸出前 (=5) 元素。 它是包含 7 的后部元素。對於 output 5 5 8 6 7,您需要以下代碼:
public class Main {
public static class Node {
public int data;
public Node next;
}
public static Node rear = null;
public static Node front = null;
public static void enqueue(int data) {
Node temp = new Node();
temp.data = data;
temp.next = null;
if (rear == null) {
front = temp;
} else {
rear.next = temp;
}
rear = temp;
}
public static void print() {
System.out.println(front.data);
}
public static void printall() {
Node dummy = front;
// the first element to be handled in a specific way
if (dummy != null) {
System.out.println(dummy.data);
}
// while will handle elements after the first one
while (dummy.next != null) {
System.out.println(dummy.next.data);
dummy = dummy.next;
}
}
public static void main(String[] args) {
enqueue(5);
enqueue(8);
enqueue(6);
enqueue(7);
print();
printall();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.