Stak mod kø
Stack er en ordnet liste, hvor indsættelse og sletning af listeelementer kun kan udføres i den ene ende kaldet toppen. Af denne grund betragtes stack som en Last in First out (LIFO) datastruktur. Kø er også en ordnet liste, hvor indsættelse af listeelementer udføres i den ene ende kaldet bagsiden, og sletning af emner sker i den anden ende kaldet fronten. Denne indsættelses- og sletningsmekanisme gør køen til en FIFO-datastruktur (First in First out).
Hvad er Stack?
Som tidligere nævnt er stack en datastruktur, hvor elementer tilføjes og fjernes fra kun den ene ende kaldet toppen. Stakke tillader kun to grundlæggende operationer kaldet push og pop. Push-operationen tilføjer et nyt element til toppen af stakken. Pop-operationen fjerner et element fra toppen af stakken. Hvis stakken allerede er fuld, betragtes den som stakoverløb, når der udføres en push-operation. Hvis en pop-operation udføres på en allerede tom stak, betragtes den som en stabelunderstrømning. På grund af det lille antal operationer, der kunne udføres på en stak, betragtes det som en begrænset datastruktur. I henhold til den måde, hvorpå push- og pop-operationerne er defineret, er det tydeligt, at elementer, der blev tilføjet sidst i stakken, går ud af stakken først. Derfor betragtes stack som en LIFO-datastruktur.
Hvad er kø?
I en kø tilføjes elementer bag fra køen og fjernes fra forsiden af køen. Da elementerne, der tilføjes først, først fjernes fra køen, opretholder den FIFO-ordren. På grund af denne rækkefølge for tilføjelse og fjernelse af elementer repræsenterer køen ideen om en checkout-linje. Generelle operationer, der understøttes af en kø, er operationer i kø og afkøling. En-kø-operation tilføjer et element bag på køen, mens dea-kø-operationen fjerner et element fra forsiden af køen. Generelt har køer ikke en grænse for antallet af elementer, der kan føjes til køen ud over hukommelsesbegrænsningerne.
Hvad er forskellen mellem stak og kø?
Selvom både stakke og køer er slags ordnede lister, har de nogle vigtige forskelle. I stakke kan tilføjelse eller sletning af emner kun ske fra den ene ende kaldet toppen, mens i kø tilføjes emner fra den ene ende kaldet bagsiden, og sletning sker fra den anden ende kaldet fronten. I en stak fjernes emner, der sidst tilføjes til stakken, først fra stakken. Derfor betragtes stack som en LIFO-datastruktur. I køer fjernes emner, der først tilføjes først, fra køen. Kø betragtes derfor som en FIFO-datastruktur.
Relateret link:
Forskellen mellem stak og bunke