Maison >Java >javaDidacticiel >Comment implémenter l'entrée et la sortie de la file d'attente en Java

Comment implémenter l'entrée et la sortie de la file d'attente en Java

王林
王林avant
2019-11-26 11:26:314210parcourir

Comment implémenter l'entrée et la sortie de la file d'attente en Java

Définissez d'abord plusieurs variables et tableaux :

a : un tableau représentant la file d'attente

rear : représentant la fin de la file d'attente , ici Initialisé à 0

(lors de l'entrée dans la file d'attente, l'indice d'un élément recule d'une position)

front : représente la tête de file d'attente, également initialisée à 0

(lorsqu'il est retiré de la file d'attente) L'indice d'un élément recule d'une position)

maxsize : L'indice maximum est ici 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.

Recommandations vidéo liées à Java : Tutoriel vidéo Java

Référez-vous à l'image ci-dessous pour une compréhension facile :

Comment implémenter lentrée et la sortie de la file dattente en Java

À l'heure actuelle, le nombre d'éléments est de 3, ce qui est déjà plein, car le nombre de tableaux correspond au nombre d'éléments valides plus un.

Remarque : les indices des éléments ne peuvent être que de 0 à 3

L'exemple de 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;
	}
}

Si vous souhaitez en savoir plus sur Java, vous pouvez visiter : Tutoriel de démarrage Java

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer