Java에서 큐 삽입 및 삭제 작업을 구현하는 방법
큐는 FIFO(선입선출) 원칙을 따르는 일반적으로 사용되는 데이터 구조입니다. Java에서는 배열이나 연결 목록을 사용하여 대기열을 구현할 수 있습니다. 아래에서는 두 가지 구현 방법을 소개하고 코드 예제를 제공합니다.
배열로 큐를 구현한다는 아이디어는 배열을 큐의 기본 데이터 구조로 사용하고 헤드와 테일을 유지하여 삽입 및 삭제 작업을 구현하는 것입니다. 포인터.
코드 예:
public class ArrayQueue { private int[] queueArray; // 队列数组 private int front; // 队头指针 private int rear; // 队尾指针 private int maxSize; // 队列的最大容量 public ArrayQueue(int size) { queueArray = new int[size]; maxSize = size; front = 0; rear = -1; } // 入队操作 public void enqueue(int data) { if (isFull()) { throw new IllegalStateException("队列已满,无法入队"); } rear++; queueArray[rear] = data; } // 出队操作 public int dequeue() { if (isEmpty()) { throw new IllegalStateException("队列为空,无法出队"); } int data = queueArray[front]; front++; return data; } // 判断队列是否为空 public boolean isEmpty() { return (rear + 1 == front); } // 判断队列是否已满 public boolean isFull() { return (rear == maxSize - 1); } }
연결 목록에서 대기열을 구현한다는 아이디어는 대기열의 헤드에 대한 포인터를 유지하여 삽입 및 삭제 작업을 구현하는 것입니다. 큐의 꼬리에 대한 포인터입니다. 새 요소가 삽입될 때마다 해당 요소는 대기열 끝에 추가되고 요소가 삭제될 때마다 대기열 끝에 있는 포인터는 새 요소를 가리킵니다. 다음 요소.
코드 예:
public class LinkedQueue { private Node front; // 队头指针 private Node rear; // 队尾指针 public LinkedQueue() { front = null; rear = null; } // 节点类 private class Node { private int data; // 数据 private Node next; // 指向下一个节点的指针 public Node(int data) { this.data = data; this.next = null; } } // 入队操作 public void enqueue(int data) { Node newNode = new Node(data); if (isEmpty()) { front = newNode; rear = newNode; } else { rear.next = newNode; rear = newNode; } } // 出队操作 public int dequeue() { if (isEmpty()) { throw new IllegalStateException("队列为空,无法出队"); } int data = front.data; front = front.next; if (front == null) { rear = null; } return data; } // 判断队列是否为空 public boolean isEmpty() { return (front == null); } }
위는 Java에서 대기열 삽입 및 삭제 작업을 구현하는 두 가지 방법입니다. 배열 구현을 사용하면 임의 액세스의 효율성이 어느 정도 향상될 수 있으며, 연결된 목록 구현을 사용하면 더 유연하고 대기열 크기를 동적으로 조정할 수 있습니다. 실제 필요에 따라 적절한 구현 방법을 선택하면 됩니다.
위 내용은 Java에서 대기열 삽입 및 삭제 작업을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!