Heim > Java > javaLernprogramm > So implementieren Sie den Warteschlangenein- und -ausgang in Java

So implementieren Sie den Warteschlangenein- und -ausgang in Java

王林
Freigeben: 2019-11-26 11:26:31
nach vorne
4227 Leute haben es durchsucht

So implementieren Sie den Warteschlangenein- und -ausgang in Java

Definieren Sie zunächst mehrere Variablen und Arrays:

a: ein Array, das die Warteschlange darstellt

rear: stellt das Ende der Warteschlange dar , hier Initialisiert auf 0

(beim Eintritt in die Warteschlange verschiebt sich der Index eines Elements um eine Position zurück)

front: Stellt den Kopf der Warteschlange dar, ebenfalls initialisiert auf 0

(beim Entfernen aus der Warteschlange bewegt sich der Index eines Elements um eine Position zurück)

maxsize: Der maximale Index wird hier auf 4 initialisiert, die Warteschlange kann jedoch nur 3 speichern. (Die Länge der Warteschlange plus eins)

Eine hier im Array reservierte Position wird verwendet, um zu bestimmen, ob die Warteschlange leer oder voll ist.

Java-bezogene Videoempfehlungen: Java-Video-Tutorial

Sehen Sie sich zum besseren Verständnis das Bild unten an:

So implementieren Sie den Warteschlangenein- und -ausgang in Java

Zu diesem Zeitpunkt beträgt die Anzahl der Elemente 3, was bereits voll ist, da die Anzahl der Arrays der Anzahl der gültigen Elemente plus eins entspricht.

Hinweis: Elementindizes können nur 0 - 3 sein

Der Beispielcode lautet wie folgt:

//数据结构——队列
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;
	}
}
Nach dem Login kopieren

Wenn Sie mehr Java-bezogenes Wissen erfahren möchten, besuchen Sie: Java-Erste-Schritte-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Warteschlangenein- und -ausgang in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage