Stack mot kö
Stack är en ordnad lista där infogning och radering av listobjekt endast kan göras i ena änden som kallas toppen. På grund av denna anledning betraktas stacken som en LIFO-datastruktur (Last in First out). Kön är också en ordnad lista där infogning av listobjekt görs i ena änden som kallas baksidan och borttagning av objekt görs i den andra änden som kallas fronten. Denna insättnings- och borttagningsmekanism gör kön till en FIFO-datastruktur First in First out.
Vad är Stack?
Som tidigare nämnts är stack en datastruktur där element läggs till och tas bort från endast en ände som kallas toppen. Stackar tillåter bara två grundläggande operationer som kallas push och pop. Push-operationen lägger till ett nytt element på toppen av stacken. Popoperationen tar bort ett element från toppen av stacken. Om stacken redan är full, när en push-operation utförs, betraktas den som stack-overflow. Om en pop-operation utförs på en redan tom stack, betraktas den som ett stack-underflöde. På grund av det lilla antalet operationer som kan utföras på en stack anses det vara en begränsad datastruktur. Enligt det sätt som push- och pop-operationerna definieras är det dessutom uppenbart att element som lades in senast i stacken går ut ur stacken först. Därför betraktas stack som en LIFO-datastruktur.
Vad är kö?
I en kö läggs element till från baksidan av kön och tas bort från den främre delen av kön. Eftersom elementen som läggs till först kommer att tas bort från kön först behåller FIFO-ordern. På grund av denna ordning för att lägga till och ta bort element representerar kö idén om en kassarad. Allmänna åtgärder som stöds av en kö är en-kö- och avköningsoperationer. En-köoperation kommer att lägga till ett element på baksidan av kön, medan avköningsoperationen tar bort ett element från framsidan av kön. I allmänhet har köer inte en begränsning på antalet element som kan läggas till i kön förutom minnesbegränsningarna.
Vad är skillnaden mellan Stack och Queue?
Även om både staplarna och köerna är typer av ordnade listor har de några viktiga skillnader. I staplar kan du lägga till eller ta bort objekt bara från ena änden som kallas överst, medan i köer läggs artiklar till från ena änden som kallas baksidan och borttagning görs från den andra änden som kallas fronten. I en stack tas objekt som läggs till sist i stacken först från stacken. Därför betraktas stack som en LIFO-datastruktur. I köer tas objekt som läggs till först bort från kön först. Därför betraktas kö som en FIFO-datastruktur.
Relaterad länk:
Skillnad mellan stack och hög