Avez-vous déjà été dans une file d'attente ? La structure des données de la file d'attente fait également la même chose. Vous vous tenez au bout de la file d'attente lorsque vous souhaitez passer une commande, peut-être dans votre restaurant libre-service préféré, puis vous remontez la file d'attente et partez.
La structure de données de file d'attente dans CS exécute la même fonctionnalité. La structure de données de file d'attente est une structure de données premier entré, premier sorti. La structure des données de file d'attente peut être construite avec deux fonctions de base Enqueue et Dequeue qui consistent essentiellement à ajouter à la liste et à supprimer de la liste.
Dans le monde réel de l'informatique, les files d'attente constituent l'épine dorsale des composants logiciels suivants
Alors qu'un composant simple et facile à visualiser serait
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 }
Complexité temporelle - O(1) pour la mise en file d'attente et la suppression de la file d'attente
Complexité spatiale - O(1) pour Enqueue et Dequeue
Référence - https://www.geeksforgeeks.org/queue-in-go-lingual/
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3