Maison > Java > javaDidacticiel > le corps du texte

Une étude de cas sur la façon dont Java utilise des tableaux pour implémenter des files d'attente circulaires

黄舟
Libérer: 2017-09-14 11:01:08
original
2123 Les gens l'ont consulté

L'éditeur suivant vous présentera un exemple d'utilisation d'un tableau pour implémenter une file d'attente circulaire en Java. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil

J'ai examiné la structure des données et utilisé des tableaux Java pour implémenter une file d'attente circulaire.

Classe Queue


//循环队列
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;
 }

}
Copier après la connexion

Créer l'objet et le tester


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);
  
  
 }

}
Copier après la connexion

Sortie :


1
1
2
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!