Meer informatie over queue

Opdracht 1 Initialisatie en gebruik van een Queue

Maak een lege queue voor strings en voeg er drie printopdrachten aan toe.

Specificaties

  • Maak een nieuwe Queue aan.
  • Voeg de opdrachten “Doc1.pdf”, “Foto.png” en “Verslag.docx” toe met Enqueue.

Verwachte output bij iteratie (foreach):

Doc1.pdf
Foto.png
Verslag.docx

Nu jij

Queue<string> printQueue = new ________;
 
// Voeg opdrachten toe
printQueue.Enqueue(________);
printQueue.Enqueue(________);
printQueue.Enqueue(________);
 
// Toon de queue
foreach (var job in printQueue)
{
    Console.WriteLine(job);
}

- Mogelijke uitwerking

Queue<string> printQueue = new Queue<string>();
 
printQueue.Enqueue("Doc1.pdf");
printQueue.Enqueue("Foto.png");
printQueue.Enqueue("Verslag.docx");
 
foreach (var job in printQueue)
{
    Console.WriteLine(job);
}

Opdracht 2 Dequeue en Count

Verwerk twee printopdrachten uit de wachtrij en bepaal hoeveel er nog over zijn.

Specificaties

  • Gebruik de Dequeue-methode om twee elementen te verwijderen.
  • Gebruik daarna Count om het resterende aantal opdrachten te tonen.

Verwachte output

Verwerkt: Doc1.pdf
Verwerkt: Foto.png
Opdrachten in wachtrij: 1

Nu jij

Queue<string> printQueue = new Queue<string>();
 
printQueue.Enqueue("Doc1.pdf");
printQueue.Enqueue("Foto.png");
printQueue.Enqueue("Verslag.docx");
 
// Verwerk opdrachten
if (printQueue.________ > 0) {
    string job1 = printQueue.________;
    Console.WriteLine($"Verwerkt: {job1}");
    string job2 = printQueue.________;
    Console.WriteLine($"Verwerkt: {job2}");
}
 
// Toon resterend aantal
Console.WriteLine($"Opdrachten in wachtrij: {printQueue.________}");

- Mogelijke uitwerking

Queue<string> printQueue = new Queue<string>();
 
printQueue.Enqueue("Doc1.pdf");
printQueue.Enqueue("Foto.png");
printQueue.Enqueue("Verslag.docx");
 
if (printQueue.Count() > 0) {
    string job1 = printQueue.Dequeue();
    Console.WriteLine($"Verwerkt: {job1}");
    string job2 = printQueue.Dequeue();
    Console.WriteLine($"Verwerkt: {job2}");
}
 
Console.WriteLine($"Opdrachten in wachtrij: {printQueue.Count()}");

Opdracht 3 Peek gebruiken

Bekijk welke opdracht als volgende geprint wordt zonder te verwijderen.

Specificaties

  • Gebruik Peek om het voorste element te bekijken.

Verwachte output

De queue is nu:
Doc1.pdf
Foto.png
Verslag.docx
Volgende in wachtrij: Doc1.docx
De queue is nu nog steeds:
Doc1.pdf
Foto.png
Verslag.docx

Nu jij

Queue<string> printQueue = new Queue<string>();
 
printQueue.Enqueue("Doc1.pdf");
printQueue.Enqueue("Foto.png");
printQueue.Enqueue("Verslag.docx");
 
Console.WriteLine("De queue is nu:");
foreach (var job in printQueue)
{
    Console.WriteLine(job);
}
 
if (printQueue.Count() > 0)
{
    string next = printQueue.________;
    Console.WriteLine($"Volgende in wachtrij: {next}");
}
 
Console.WriteLine("De queue is nu nog steeds:");
foreach (var job in printQueue)
{
    Console.WriteLine(job);
}

- Mogelijke uitwerking

Queue<string> printQueue = new Queue<string>();
 
printQueue.Enqueue("Doc1.pdf");
printQueue.Enqueue("Foto.png");
printQueue.Enqueue("Verslag.docx");
 
Console.WriteLine("De queue is nu:");
foreach (var job in printQueue)
{
    Console.WriteLine(job);
}
 
if (printQueue.Count() > 0)
{
  string next = printQueue.Peek();
  Console.WriteLine($"Volgende in wachtrij: {next}");
}
 
Console.WriteLine("De queue is nu nog steeds:");
foreach (var job in printQueue)
{
    Console.WriteLine(job);
}

Opdracht 4 Simuleer operaties

Gegeven is de volgende reeks bewerkingen op een queue:

Enqueue(1)
Enqueue(2)
Enqueue(3)
Dequeue()
Enqueue(4)
Dequeue()

Welke getallen blijven in de queue, en in welke volgorde?

Verwachte output

Resterende items: 3, 4

Nu jij

Beschrijf per actie welke waarden nog in de queue staan.

- Mogelijke uitwerking

Na de eerste drie Enqueue-operaties bevat de queue [1,2,3]. Na Dequeue() wordt 1 verwijderd: [2,3]. Met Enqueue(4) wordt 4 toegevoegd: [2,3,4]. Met Dequeue() wordt 2 verwijderd: [3,4].


Opdracht 5 Dagje naar het pretpark

Maak een simulatie voor een wachtrij van de achtbaan. Voordat de hekjes open gaan moet de medewerker kijken of er bezoekers in de wachtrij staan. Vervolgens mogen de bezoekers één voor één instappen.

Specificaties

  • Voeg eerst vijf bezoekers toe aan de queue.
  • Controleer of er bezoekers in de queue staan.
  • Laat de bezoekers vervolgens één voor één instappen in de achtbaan.

Verwachte output

Start achtbaan ...
Klant 1 mag plaatsnemen in een wagentje
Klant 2 mag plaatsnemen in een wagentje
Klant 3 mag plaatsnemen in een wagentje
Klant 4 mag plaatsnemen in een wagentje
Klant 5 mag plaatsnemen in een wagentje
Alle bezoekers zijn geweest

Nu jij

// Een nieuwe queue voor strings
Queue<string> wachtrij = new Queue<string>();
 
// De klanten komen één voor één in de wachtrij
wachtrij.______("Klant 1");
wachtrij.______("Klant 2");
wachtrij.______("Klant 3");
wachtrij.______("Klant 4");
wachtrij.______("Klant 5");
 
Console.WriteLine("Start achtbaan ...");
 
// Laat de bezoekers instappen tot de queue leeg is
while (wachtrij.______ > ______) {
    string bezoeker = wachtrij.______();
    Console.WriteLine($"{bezoeker} mag plaatsnemen in een wagentje");
}
 
Console.WriteLine("Alle bezoekers zijn geweest");

- Mogelijke uitwerking

// Een nieuwe queue voor strings
Queue<string> wachtrij = new Queue<string>();
 
// De klanten komen één voor één in de wachtrij
wachtrij.Enqueue("Klant 1");
wachtrij.Enqueue("Klant 2");
wachtrij.Enqueue("Klant 3");
wachtrij.Enqueue("Klant 4");
wachtrij.Enqueue("Klant 5");
 
Console.WriteLine("Start achtbaan ...");
 
// Laat de bezoekers instappen tot de queue leeg is
while (wachtrij.Count() > 0) {
    string bezoeker = wachtrij.Dequeue();
    Console.WriteLine($"{bezoeker} mag plaatsnemen in een wagentje");
}
 
Console.WriteLine("Alle bezoekers zijn geweest");