Rumah >Java >javaTutorial >Cara membetulkan: Ralat struktur data Java: Limpahan baris gilir
Cara menyelesaikan: Ralat struktur data Java: limpahan baris gilir
Pengenalan:
Dalam proses pengaturcaraan dan pembangunan menggunakan Java, kita sering menghadapi pelbagai ralat dan pengecualian. Salah satu masalah biasa ialah ralat struktur data, terutamanya limpahan baris gilir. Artikel ini memperincikan cara menyelesaikan masalah ini dan menyediakan contoh kod yang berkaitan.
Baris gilir ialah struktur data biasa yang mengikut prinsip masuk dahulu keluar (FIFO). Dalam baris gilir, kita boleh memasukkan elemen pada satu hujung dan memadam elemen pada hujung yang lain. Ralat limpahan baris gilir berlaku apabila kami memasukkan elemen ke dalam baris gilir yang penuh.
Ralat limpahan baris gilir biasanya disebabkan oleh situasi berikut:
public class Queue { private int[] data; private int front, rear, size; public Queue(int capacity) { data = new int[capacity]; front = rear = size = 0; } public void enqueue(int element) { if (size == data.length) { throw new IllegalStateException("Queue is full"); } data[rear] = element; rear = (rear + 1) % data.length; size++; } }
public class Queue { private int[] data; private int front, rear, size; public Queue(int capacity) { data = new int[capacity]; front = rear = size = 0; } public void enqueue(int element) { if (size == data.length) { resize(); } data[rear] = element; rear = (rear + 1) % data.length; size++; } private void resize() { int[] newData = new int[data.length * 2]; for (int i = 0; i < data.length; i++) { newData[i] = data[(front + i) % data.length]; } data = newData; front = 0; rear = size; } }2.3 Gunakan senarai pautan dinamik untuk melaksanakan baris gilirPenyelesaian lain ialah menggunakan senarai pautan dinamik untuk melaksanakan baris gilir. Berbanding dengan tatasusunan bersaiz tetap, senarai terpaut boleh menambah dan mengalih keluar elemen secara fleksibel, jadi ralat limpahan baris gilir tidak berlaku. Berikut ialah contoh kod untuk baris gilir yang dilaksanakan menggunakan senarai terpaut:
public class Queue { private class Node { int data; Node next; Node(int data) { this.data = data; this.next = null; } } private Node front, rear; private int size; public Queue() { front = rear = null; size = 0; } public void enqueue(int element) { Node newNode = new Node(element); if (isEmpty()) { front = rear = newNode; } else { rear.next = newNode; rear = newNode; } size++; } }Ringkasan: Ralat limpahan baris gilir adalah salah satu masalah biasa dalam pengaturcaraan Java. Artikel ini menerangkan cara menyemak sama ada baris gilir penuh dan menyediakan dua kaedah untuk menyelesaikan ralat limpahan baris gilir: mengembangkan baris gilir dan menggunakan senarai terpaut untuk melaksanakan baris gilir. Saya harap artikel ini akan membantu dalam menyelesaikan ralat struktur data Java: masalah limpahan baris gilir.
Atas ialah kandungan terperinci Cara membetulkan: Ralat struktur data Java: Limpahan baris gilir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!