Ich habe eine Warteschlange der Größe 5 erstellt. Ich habe 5 Werte in die Warteschlange (1,2,3,4,5) eingefügt. jetzt ist mein vorderer Wert auf dem Index 0 und mein hinterer Wert zeigt auf den Index 4 (die letzte Position meiner Warteschlange). Jetzt habe ich ein Element aus der Warteschlange entfernt und so hat meine Warteschlange jetzt nur noch (2,3,4,5). Jetzt ist meine Warteschlange nicht voll, da sie eine freie Position hat. Nur 4 Werte werden gefüllt und ein Wert wird entfernt. Wie kann ich einen neuen Wert für diesen leeren Ort in meiner Warteschlange eingeben?Wie Elemente zu einer Warteschlange hinzugefügt werden, wenn die Warteschlange bereits voll ist und einige Werte dann entfernt werden?
1
A
Antwort
0
Sie haben
Für Enqueue zu verwenden:
rear = (rear+1)%MAX_SIZE;
So, jetzt, wenn hinten an Endposition ist, und es gibt freien Raum vor dann der folgende Code Rückkehr des Index in Kreis starten Weg.
Für Dequeue:
front = (front+1)%MAX_SIZE;
Ähnlich im Fall von dequeue.
Hinweis:
Sie haben Zustand zu setzen, wenn das Array leer oder voll in Ihrem Code. Auch wenn vorne und hinten an derselben Position sind, bedeutet dies, dass das Array jetzt leer ist und Sie beiden den leeren Positionsindex zuweisen müssen.
-1
diesen Zustand setzen 1. Wenn (COUNT = MAX), dann a. Anzeige "Warteschlangenüberlauf"; b. Rückkehr; 2. Sonst a. Wenn (REAR = MAX) dann i. HINTEN: = 1; b. Sonst i. HINTEN: = HINTEN + 1; c. WARTESCHLANGE (HINTEN): = ARTIKEL; d. COUNT: = COUNT + 1; 3. Zurück;
Verwandte Themen
- 1. ThreadPoolExecutor blockieren, wenn die Warteschlange voll ist?
- 2. Unterscheidung zwischen Warteschlange voll und Warteschlange leer
- 3. Spring-Threads und TaskRejectException, wenn die Warteschlange voll ist
- 4. Was passiert, wenn die Warteschlange des ExecutorService voll ist
- 5. Multiprocessing-Warteschlange voll
- 6. Eine zirkuläre Warteschlange durchlaufen, ohne eine temporäre Warteschlange zu verwenden
- 7. Problem - Die FastCGI Pool Warteschlange voll
- 8. Warum ist die Leistung meiner App nicht schrecklich, wenn meine uWSGI-Warteschlange voll ist?
- 9. Implementierung einer dateibasierten Warteschlange
- 10. Wie kann die Priorität einer benutzerdefinierten GCD-Warteschlange geändert werden?
- 11. Wie kann die Indizierung für den Zugriff auf Elemente in einer Warteschlange in Python verwendet werden?
- 12. Wann Warteschlange über Arraylist zu verwenden ist
- 13. ListView flackert, wenn neue Elemente hinzugefügt werden
- 14. Ist es möglich, zu verhindern, dass Berührungen zur Warteschlange hinzugefügt werden?
- 15. Beenden des Hangfire-Jobs aus der Warteschlange, wenn er bereits in die Warteschlange gestellt wurde
- 16. Prozesselemente wie die Elemente in der Warteschlange sind innerhalb einer while-Schleife hinzugefügt
- 17. Datei-Poller aktiviert, wenn eine Warteschlange voll ist oder eine festgelegte Zeitspanne verstrichen ist
- 18. MSMQ Nachrichten werden in der Outgoing Warteschlange
- 19. Wie überprüfen, ob eine Aufgabe bereits in Python-Warteschlange ist?
- 20. Twilio Benutzer zurückrufen, wenn die nächste in der Warteschlange ist
- 21. Wie Outlook.TaskItems zu bereits vorhandenen Outlook.Items hinzugefügt werden?
- 22. die letzten n Elemente aus der Warteschlange
- 23. Wie werden fehlgesteuerte Jobs in Quartz in die Warteschlange gestellt?
- 24. Warteschlange: hören Timeout stoppen Verarbeitung Warteschlange Verarbeitung
- 25. Sidekiq und Parallelität von einer einzigen Warteschlange
- 26. Was ist der Unterschied zwischen einer Warteschlange für unzustellbare Nachrichten und einer Warteschlange für ausgehende Nachrichten?
- 27. Stack mit einer Warteschlange
- 28. Python Threads und Warteschlange Beispiel
- 29. Elemente, die nicht in Array hinzugefügt werden
- 30. Wie langsam ist Redis, wenn die Tasten voll sind und geräumt werden? (LRU-Algorithmus)