Heim  >  Artikel  >  Java  >  Ein- und Ausreihen der Java-Datenstruktur in die Warteschlange

Ein- und Ausreihen der Java-Datenstruktur in die Warteschlange

(*-*)浩
(*-*)浩Original
2019-11-26 16:56:534546Durchsuche

Ein- und Ausreihen der Java-Datenstruktur in die Warteschlange

Verwenden Sie Java, um den Ein- und Ausgang der Warteschlange zu implementieren

Zuerst müssen Sie mehrere Variablen und Arrays definieren:

a : Ein Array, das die Warteschlange darstellt (Empfohlenes Lernen: Java-Kurs)

hinten: Stellt das Ende der Warteschlange dar, hier wird es auf 0 initialisiert

(der Index von ein Element in der Warteschlange bewegt sich um ein Bit zurück)

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

(wenn ein Element aus der Warteschlange entfernt wird, bewegt sich der Index um ein Bit zurück)

maxsize: der maximale Index, hier wird er auf 4 initialisiert, aber die Warteschlange kann 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.

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

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

Hinweis: Der Elementindex kann nur 0-3 sein

Der Code 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;
	}
}

Das obige ist der detaillierte Inhalt vonEin- und Ausreihen der Java-Datenstruktur in die Warteschlange. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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