Stack vs Queue
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 stack som en sist in först ut (LIFO) datastruktur. Kön är också en ordnad lista där infogning av listobjekt görs i ena änden som kallas den bakre, och raderingen av objekt görs i den andra änden som kallas fronten. Denna insättnings- och raderingsmekanism gör kön till en First in First out (FIFO) datastruktur.
Vad är Stack?
Som nämnts tidigare är stack en datastruktur där element läggs till och tas bort från endast en ände som kallas toppen. Stackar tillåter endast två grundläggande operationer som kallas push och pop. Push-operationen lägger till ett nytt element till toppen av stapeln. Popoperationen tar bort ett element från toppen av stapeln. Om stapeln redan är full, när en push-operation utförs, betraktas det som ett stackspill. Om en pop-operation utförs på en redan tom stack, betraktas det som ett stack underflow. På grund av det lilla antalet operationer som kan utföras på en stack, betraktas det som en begränsad datastruktur. Dessutom, enligt hur push- och pop-operationerna definieras, är det tydligt att element som lades till sist 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 den bakre delen av kön och tas bort från den främre delen av kön. Eftersom de element som läggs till först kommer att tas bort från kön först, bibehåller den FIFO-ordningen. På grund av denna ordning för att lägga till och ta bort element representerar kö idén om en kassalinje. Allmänna operationer som stöds av en kö är en-kö- och de-queue-operationer. En-queue operation kommer att lägga till ett element längst bak i kön, medan de-queue operationen tar bort ett element från den främre delen av kön. I allmänhet har köer ingen gräns för 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 stackarna och köerna är sorters ordnade listor, har de några viktiga skillnader. I stackar kan lägga till eller ta bort objekt endast från ena änden som kallas toppen, medan i köer lägger man till objekt från ena änden som kallas baksidan och att radera objekt görs från den andra änden kallas fronten. I en stack kommer objekt som läggs till sist i stapeln att tas bort först från stapeln. 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:
Skillnaden mellan stack och heap