Home Java javaTutorial A case study on how Java uses arrays to implement circular queues

A case study on how Java uses arrays to implement circular queues

Sep 14, 2017 am 11:01 AM
java accomplish array

The following editor will bring you an example of using an array to implement a circular queue in Java. The editor thinks it’s pretty good, so I’ll share it with you now and give it as a reference. Let’s follow the editor and take a look.

I reviewed the data structure and used Java arrays to implement a circular queue.

Queue class


//循环队列
class CirQueue{
 private int QueueSize;
 private int front;
 private int rear;
 private int[] queueList ;
 
 public CirQueue(int QueueSize){
  this.QueueSize = QueueSize; 
  queueList = new int[QueueSize];
  front = 0;
  rear = 0;
 }
 
 //获取队列头元素
 public int getQueueElement(){
  //如果队列不为空,返回队头元素,否则抛出异常提示队列为空
  int element = -1;
  if(!isEmpty()){
   element = queueList[front];
   return element;
  }
  else {
   System.out.println("队列为空");
   return -1;
  }
  
 }
 
 //出队
 public int deQueue(){
  int element = -1;
  if(!isEmpty()){
   element = queueList[front];
   front =(front+1)%QueueSize;
   return element;
  }
  else {
   System.out.println("队列为空");
   return -1;
  }
  
 }
 
 
 
 
 
 //入队
 public void enQueue(int element){
  //如果队列未满,添加元素到队尾,否则提示队列已满
  if(!isFull()){
   queueList[rear] = element ;
   rear = (rear+1)%QueueSize;
   
  }
  else {
   System.out.println("队列已满");
  }
 }
 
 //判断队列是否为空
 public boolean isEmpty(){
  boolean b = false;
  if(rear == front)
   b = true;
  return b;
 }
 
 
 //判断队列是否已满
 public boolean isFull(){
  boolean b = false;
  if((rear+1)%QueueSize == front)
   b = true;
  return b;
 }

}
Copy after login

Create object and test


package com.test;

import java.util.*;


public class StructTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  //新建并初始化存储空间为3的循环队列(方便判断队满条件,浪费一个数组空间)
  CirQueue cirQueue = new CirQueue(4);
  //入队3个元素
  cirQueue.enQueue(1);
  cirQueue.enQueue(2);
  cirQueue.enQueue(3);
  
  //获取队头元素,获取 但不改变队列
  int temp = cirQueue.getQueueElement();
  System.out.println(temp);
  
  //出队 获取队头元素,并且队头指针往后移一位
  temp = cirQueue.deQueue();
  System.out.println(temp);
  
  //再次获取队头元素
  temp = cirQueue.getQueueElement();
  System.out.println(temp);
  
  
 }

}
Copy after login

Output:


1
1
2
Copy after login

The above is the detailed content of A case study on how Java uses arrays to implement circular queues. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Square Root in Java Square Root in Java Aug 30, 2024 pm 04:26 PM

Square Root in Java

Perfect Number in Java Perfect Number in Java Aug 30, 2024 pm 04:28 PM

Perfect Number in Java

Random Number Generator in Java Random Number Generator in Java Aug 30, 2024 pm 04:27 PM

Random Number Generator in Java

Armstrong Number in Java Armstrong Number in Java Aug 30, 2024 pm 04:26 PM

Armstrong Number in Java

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Weka in Java

Smith Number in Java Smith Number in Java Aug 30, 2024 pm 04:28 PM

Smith Number in Java

Java Spring Interview Questions Java Spring Interview Questions Aug 30, 2024 pm 04:29 PM

Java Spring Interview Questions

Break or return from Java 8 stream forEach? Break or return from Java 8 stream forEach? Feb 07, 2025 pm 12:09 PM

Break or return from Java 8 stream forEach?

See all articles