簡體   English   中英

使用鏈表顯示隊列的所有元素,

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM