跳到主要内容

编写Java代码实现链队列 ?

参考答案:

链队列(也称为链表队列)是一种特殊类型的队列,它使用链表作为底层数据结构。链队列通常包括两个主要部分:一个头(front)指针和一个尾(rear)指针。头指针指向队列的第一个元素,尾指针指向队列的最后一个元素。

以下是一个简单的Java实现链队列的示例:

public class Node {
    int data;
    Node next;

    Node(int data) {
        this.data = data;
        this.next = null;
    }
}

public class LinkedQueue {
    Node front; // 头指针
    Node rear;  // 尾指针

    LinkedQueue() {
        front = null;
        rear = null;
    }

    // 入队操作
    public void enqueue(int data) {
        Node newNode = new Node(data);

        if (rear == null) {
            front = newNode;
            rear = newNode;
        } else {
            rear.next = newNode;
            rear = newNode;
        }
    }

    // 出队操作
    public int dequeue() {
        if (front == null) {
            System.out.println("队列为空");
            return -1;
        }

        int data = front.data;
        front = front.next;

        if (front == null) {
            rear = null;
        }

        return data;
    }

    // 检查队列是否为空
    public boolean isEmpty() {
        return front == null;
    }

    // 打印队列元素
    public void printQueue() {
        Node temp = front;
        while (temp != null) {
            System.out.print(temp.data + " ");
            temp = temp.next;
        }
        System.out.println();
    }

    public static void main(String[] args) {
        LinkedQueue queue = new LinkedQueue();

        // 入队元素
        queue.enqueue(1);
        queue.enqueue(2);
        queue.enqueue(3);

        // 打印队列元素
        System.out.println("队列元素: ");
        queue.printQueue();

        // 出队元素
        System.out.println("出队元素: " + queue.dequeue());

        // 再次打印队列元素
        System.out.println("队列元素: ");
        queue.printQueue();
    }
}

在这个示例中,Node类表示链表中的节点,每个节点都有一个数据字段和一个指向下一个节点的指针。LinkedQueue类实现了链队列,包括enqueue(入队)、dequeue(出队)、isEmpty(检查队列是否为空)和printQueue(打印队列元素)等方法。在main方法中,我们创建了一个LinkedQueue对象,并向其中添加了一些元素,然后执行出队操作并打印队列元素。