Co je to fronta v C #?
Fronta je kolekce speciálních případů, která představuje koncept „first in first out“. Představte si frontu lidí čekajících na autobus. První osoba, která vstoupí do fronty, bude obvykle první osobou, která vstoupí do autobusu. Podobně poslední osoba, která vstoupí do fronty, bude poslední osobou, která vstoupí do autobusu. Do fronty se přidávají prvky, jeden na druhého.
Proces přidání prvku do fronty je operace enqueuer. Chcete-li odebrat prvek z fronty, můžete použít operaci dequeuer. Operace ve frontách je podobná zásobníku, který jsme viděli dříve.
Podívejme se na operace dostupné pro kolekci Queue podrobněji.
Prohlášení o frontě
Níže je uvedeno prohlášení o frontě. Fronta se vytváří pomocí datového typu fronty. Klíčové slovo „new“ se používá k vytvoření objektu fronty. Objekt je poté přiřazen k proměnné qt.
Queue qt = new Queue()
Přidávání prvků do fronty
Metoda enqueue se používá k přidání prvku do fronty. Obecná syntaxe příkazu je uvedena níže.
Queue.enqueue(element)
Odebírání prvků z fronty
Metoda dequeue se používá k odebrání prvku z fronty. Operace dequeue vrátí první prvek fronty. Obecná syntaxe příkazu je uvedena níže
Queue.dequeue()
Počet
Tato vlastnost se používá k získání počtu položek ve frontě. Níže je uvedena obecná syntaxe tohoto příkazu.
Queue.Count
Obsahuje
Tato metoda se používá ke zjištění, zda je prvek přítomen ve frontě. Níže je uvedena obecná syntaxe tohoto příkazu. Příkaz vrátí hodnotu true, pokud prvek existuje, jinak vrátí hodnotu false.
Queue.Contains(element)
Nyní se podívejme, jak to funguje na úrovni kódu. Veškerý níže uvedený kód bude zapsán do naší aplikace Console.
Kód bude zapsán do našeho souboru Program.cs. V níže uvedeném programu napíšeme kód, abychom zjistili, jak můžeme použít výše uvedené metody.
Příklad
V tomto příkladu uvidíme, jak se vytvoří fronta. Dále uvidíme, jak zobrazit prvky fronty, a použít metody Count a 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();}}}
Vysvětlení kódu
- První krok se používá k deklaraci fronty. Zde deklarujeme qt jako proměnnou, která drží prvky naší fronty.
- Dále přidáme 3 prvky do naší fronty. Každý prvek je přidán metodou „enqueue“.
- Jedna věc, kterou je třeba si u Queue všimnout, je, že k prvkům nelze přistupovat prostřednictvím pozice indexu, jako je seznam polí. K zobrazení prvků fronty musíme použít jiný přístup. Tady je ukázka toho, jak zobrazovat prvky fronty.
- Nejprve deklarujeme dočasnou proměnnou nazvanou obj. To se použije k zadržení každého prvku fronty.
- Poté pomocí příkazu foreach projdeme každý prvek fronty.
- Pro každý prvek fronty je hodnota přiřazena proměnné obj.
- Potom použijeme příkaz Console.Writeline k zobrazení hodnoty na konzoli.
- K získání počtu položek ve frontě používáme vlastnost „Count“. Tato vlastnost vrátí číslo. Tuto hodnotu poté zobrazíme na konzoli.
- Poté pomocí metody „Contains“ zjistíme, zda je v naší frontě hodnota 3. Vrátí buď hodnotu true, nebo false. Tuto návratovou hodnotu poté zobrazíme na konzoli.
Pokud je výše uvedený kód zadán správně a program je spuštěn, zobrazí se následující výstup.
Výstup
Z výstupu jasně vidíme, že jsou zobrazeny prvky fronty. Všimněte si, že na rozdíl od „zásobníku“ ve „frontě“ se nejprve zobrazí první prvek vložený do fronty. Počet prvků fronty se také zobrazuje ve výstupu. Zobrazuje se také hodnota True, která říká, že ve frontě je definována hodnota 3.
C # fronta dequeue
Nyní se podívejme na funkci odebrání. Uvidíme kód potřebný k odebrání posledního prvku z fronty.
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();}}}
Vysvětlení kódu
- Zde pouze vydáme metodu „dequeue“, která se používá k odebrání prvku z fronty. Tato metoda odstraní první prvek fronty.
Pokud je výše uvedený kód zadán správně a program je spuštěn, zobrazí se následující výstup.
Výstup:
Z výstupu vidíme, že první prvek, který byl přidán do fronty, což byl prvek 1, byl z fronty odebrán.
souhrn
- Fronta je založena na konceptu „first in first out“. Operace přidání prvku do fronty se nazývá operace zařazení do fronty. Operace odebrání prvku do fronty se nazývá operace dequeue.