Utilisez Java pour implémenter l'entrée et la sortie de la file d'attente
Tout d'abord, vous devez définir plusieurs variables et tableaux :
a : Un tableau représentant la file d'attente (Apprentissage recommandé : cours java)
rear : Représente la fin de la file d'attente, ici elle est initialisée à 0
(l'indice de un élément de la file d'attente recule d'un bit)
front : Représente la tête de la file d'attente, également initialisé à 0
(lorsqu'un élément est retiré de la file d'attente, l'indice recule d'un bit)
maxsize : l'indice maximum, ici il est initialisé à 4, mais la file d'attente ne peut en stocker que 3. (La longueur de la file d'attente plus un)
Une position réservée dans le tableau ici est utilisée pour déterminer si la file d'attente est vide ou pleine.
Référez-vous à l'image ci-dessous pour une compréhension facile :
À ce moment, le nombre d'éléments est de 3, ce qui est déjà plein, car le nombre de tableaux est le nombre d'éléments valides plus un.
Remarque : l'indice de l'élément ne peut être que 0-3
Le code est le suivant :
//数据结构——队列 import java.util.Scanner; public class Queue { int[] a ; int rear; int front; int maxsize; public static void main(String[] args) { Queue queue = new Queue(); Scanner scan = new Scanner(System.in); int i; do { System.out.println("请输入:1入队 2出队 3查看 0退出"); i = scan.nextInt(); switch(i) { case 1: System.out.println("请输入要入队的元素:"); queue.addQueue(scan.nextInt()); break; case 2: queue.exitQueue(); break; case 3: queue.showqueue(); break; } }while(i!=0); System.out.println("退出成功"); } //构造函数 public Queue(){ a = new int[4]; rear = 0; front = 0; maxsize = 4; } //判断队列是否为空 public boolean judgeNull() { return rear == front; } //判断队列是否已满 public boolean judgeFull() { return (rear+1) % maxsize == front; } //入队 public void addQueue(int num) { //判断,若队列已满则结束,不满则将其添加 if(judgeFull()) { System.out.println("队列已满"); return ; } a[rear] = num; rear = (rear+1) % maxsize; } //出队 public void exitQueue() { //判断,若队列为空则结束,非空则将其最前的元素取出 if(judgeNull()) { System.out.println("队列为空"); return ; } front = (front+1) % maxsize; } //显示队列的元素 public void showqueue() { if(judgeNull()) { System.out.println("队列为空"); return ; } for (int i = front; i < front+count(); i++) { System.out.printf("a[%d] = %d\n",i%maxsize,a[i%maxsize]); } } //求出队列的有效个数 public int count() { return (rear+maxsize-front)%maxsize; } }
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!