Haben Sie schon einmal in einer Warteschlange gestanden? Die Datenstruktur der Warteschlange macht dasselbe. Sie stehen am Ende der Schlange, wenn Sie eine Bestellung aufgeben möchten, vielleicht in Ihrem Lieblings-Selbstbedienungsrestaurant, und dann rücken Sie in der Schlange nach oben und gehen.
Die Warteschlangendatenstruktur in CS führt die gleiche Funktionalität aus. Die Warteschlangendatenstruktur ist eine First-In-First-Out-Datenstruktur. Die Warteschlangendatenstruktur kann mit zwei Grundfunktionen „Enqueue“ und „Dequeue“ erstellt werden, bei denen es sich im Wesentlichen um das Hinzufügen zur Liste und das Entfernen aus der Liste handelt.
In der realen Welt der Informatik bilden Warteschlangen das Rückgrat der folgenden Softwarekomponenten
Während eine einfache, leicht zu visualisierende Komponente wäre
package main import ( "fmt" "errors" ) type Queue struct{ Elements []int Size int } func (q *Queue) Enqueue(value int){ if q.GetLength() == q.Size { fmt.Println("Overflow") return } q.Elements = append(q.Elements, value) } func (q *Queue) Dequeue() int { if q.IsEmpty() { fmt.Println("UnderFlow") return 0 } element := q.Elements[0] if q.GetLength() == 1 { q.Elements = nil return element } q.Elements = q.Elements[1:] return element } func (q *Queue) GetLength() int { return len(q.Elements) } func (q *Queue) IsEmpty() bool { return len(q.Elements) == 0 } func (q *Queue) Peek() (int, error) { if q.IsEmpty() { return 0, errors.New("empty queue") } return q.Elements[0], nil }
Zeitkomplexität – O(1) für Enqueue und Dequeue
Raumkomplexität – O(1) für Enqueue und Dequeue
Referenz – https://www.geeksforgeeks.org/queue-in-go-sprache/
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3