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; } }
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++; } }
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!