Što je Red čekanja u C #?
Queue je posebna kolekcija slučajeva koja predstavlja koncept first in first out. Zamislite red ljudi koji čekaju autobus. Obično će prva osoba koja uđe u red čekanja biti prva osoba koja uđe u autobus. Slično tome, zadnja osoba koja uđe u red bit će zadnja osoba koja uđe u autobus. Elementi se dodaju u red, jedan na vrhu drugog.
Proces dodavanja elementa u red je operacija enqueuera. Da biste uklonili element iz reda, možete upotrijebiti operaciju dequeuer. Operacija u redovima slična je stogu koji smo ranije vidjeli.
Pogledajmo operacije koje su dostupne za kolekciju Red čekanja detaljnije.
Izjava o redu čekanja
Izjava o redu čekanja nalazi se u nastavku. Red čekanja stvara se uz pomoć vrste podataka reda čekanja. Ključna riječ "new" koristi se za stvaranje objekta reda. Zatim se objekt dodjeljuje varijabli qt.
Queue qt = new Queue()
Dodavanje elemenata u red čekanja
Metoda enqueue koristi se za dodavanje elementa u red čekanja. Opća sintaksa izjave data je u nastavku.
Queue.enqueue(element)
Uklanjanje elemenata iz reda
Metoda dequeue koristi se za uklanjanje elementa iz reda. Operacija dequeue vratit će prvi element reda. Opća sintaksa izjave data je u nastavku
Queue.dequeue()
Računati
Ovo se svojstvo koristi za dobivanje broja stavki u redu čekanja. Ispod je opća sintaksa ove izjave.
Queue.Count
Sadrži
Ovom se metodom provjerava je li element prisutan u redu čekanja. Ispod je opća sintaksa ove izjave. Izraz će vratiti true ako element postoji, inače će vratiti vrijednost false.
Queue.Contains(element)
Sada, pogledajmo kako ovo djeluje na razini koda. Sav dolje navedeni kôd bit će zapisan u našu aplikaciju Console.
Kôd će biti zapisan u našu datoteku Program.cs. U donjem programu napisat ćemo kôd kako bismo vidjeli kako se možemo koristiti gore spomenutim metodama.
Primjer
U ovom ćemo primjeru vidjeti kako se stvara red. Dalje, vidjet ćemo kako prikazati elemente reda i koristiti metode Count and Contain.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Queue qt = new Queue();qt.Enqueue(1);qt.Enqueue(2);qt.Enqueue(3);foreach (Object obj in qt){Console.WriteLine(obj);}Console.WriteLine(); Console.WriteLine();Console.WriteLine("The number of elements in the Queue " + qt.Count);Console.WriteLine("Does the Queue contain " + qt.Contains(3));Console.ReadKey();}}}
Objašnjenje koda
- Prvi se korak koristi za proglašenje reda. Ovdje deklariramo qt kao varijablu koja sadrži elemente našeg reda.
- Dalje, u naš red čekanja dodajemo 3 elementa. Svaki se element dodaje metodom "enqueue".
- Sada je kod Redova potrebno napomenuti da se elementima ne može pristupiti putem indeksnog položaja poput popisa polja. Moramo koristiti drugačiji pristup za prikaz elemenata reda. Dakle, evo kako krećemo s prikazom elemenata reda.
- Prvo deklariramo privremenu varijablu koja se naziva obj. Ovo će se koristiti za zadržavanje svakog elementa reda.
- Zatim koristimo foreach izjavu za prolazak kroz svaki element reda.
- Za svaki element reda čekanja vrijednost se dodjeljuje varijabli obj.
- Zatim koristimo naredbu Console.Writeline za prikaz vrijednosti na konzoli.
- Svojstvo "Count" koristimo za dobivanje broja stavki u redu čekanja. Ovo svojstvo vratit će broj. Zatim tu vrijednost prikazujemo na konzoli.
- Zatim koristimo metodu "Sadrži" da vidimo je li vrijednost 3 prisutna u našem redu čekanja. To će vratiti istinitu ili lažnu vrijednost. Zatim tu povratnu vrijednost prikazujemo na konzoli.
Ako se gornji kôd pravilno unese i program pokrene, prikazat će se sljedeći izlaz.
Izlaz
Iz rezultata možemo jasno vidjeti da su prikazani elementi reda. Imajte na umu da se, za razliku od "stoga" u "redu čekanja", prvi element koji je gurnut u red prikazuje prvi. Broj elemenata reda također je prikazan u izlazu. Također, prikazuje se vrijednost True koja govori da je vrijednost 3 definirana u redu čekanja.
C # Red čekanja
Pogledajmo sada funkciju uklanjanja. Vidjet ćemo kod potreban za uklanjanje posljednjeg elementa iz reda.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Queue qt = new Queue();qt.Enqueue(1);qt.Enqueue(2);qt.Enqueue(3);qt.Dequeue();foreach (Object obj in qt){Console.WriteLine(obj);}Console.ReadKey();}}}
Objašnjenje koda
- Ovdje samo izdajemo metodu "dequeue" koja se koristi za uklanjanje elementa iz reda. Ovom će se metodom ukloniti prvi element reda.
Ako se gornji kôd pravilno unese i program pokrene, prikazat će se sljedeći izlaz.
Izlaz:
Iz izlaza možemo vidjeti da je prvi element koji je dodan u red, a to je bio element 1, uklonjen iz reda.
Sažetak
- Red čekanja temelji se na konceptu first in first out. Operacija dodavanja elementa u red naziva se operacija enqueue. Operacija uklanjanja elementa u red naziva se operacija dequeue.