Stack vs Queue
Stack er en ordnet liste der innsetting og sletting av listeelementer kun kan gjøres i den ene enden k alt toppen. På grunn av denne grunn anses stack som en Last in First out (LIFO) datastruktur. Kø er også en ordnet liste der innsetting av listeelementer gjøres i den ene enden k alt baksiden, og sletting av elementer gjøres i den andre enden k alt fronten. Denne innsettings- og slettingsmekanismen gjør køen til en First in First out (FIFO) datastruktur.
Hva er Stack?
Som nevnt tidligere, er stack en datastruktur der elementer legges til og fjernes fra kun den ene enden som kalles toppen. Stabler tillater bare to grunnleggende operasjoner k alt push og pop. Push-operasjonen legger til et nytt element på toppen av stabelen. Pop-operasjonen fjerner et element fra toppen av stabelen. Hvis stabelen allerede er full, når en push-operasjon utføres, betraktes det som et stabeloverløp. Hvis en pop-operasjon utføres på en allerede tom stabel, betraktes det som en stabelunderflyt. På grunn av det lille antallet operasjoner som kan utføres på en stabel, anses det som en begrenset datastruktur. I tillegg, i henhold til måten push- og pop-operasjonene er definert, er det klart at elementer som ble lagt til sist i stabelen, går ut av stabelen først. Derfor betraktes stabelen som en LIFO-datastruktur.
Hva er kø?
I en kø legges elementer til fra baksiden av køen og fjernes foran i køen. Siden elementene som legges til først vil bli fjernet fra køen først, opprettholder den FIFO-rekkefølgen. På grunn av denne rekkefølgen for å legge til og fjerne elementer, representerer kø ideen om en betalingslinje. Generelle operasjoner som støttes av en kø er en-kø- og de-kø-operasjoner. En-kø-operasjon vil legge til et element bakerst i køen, mens de-kø-operasjonen fjerner et element fra forsiden av køen. Generelt sett har ikke køer en begrensning på antall elementer som kan legges til i køen i tillegg til minnebegrensningene.
Hva er forskjellen mellom Stack og Queue?
Selv om både stablene og køene er slags ordnede lister, har de noen viktige forskjeller. I stabler kan legge til eller slette elementer bare gjøres fra den ene enden som kalles toppen, mens i køer legges til elementer fra den ene enden som kalles baksiden og sletting av elementer gjøres fra den andre enden k alt fronten. I en stabel vil elementer som legges til sist i stabelen bli fjernet først fra stabelen. Derfor betraktes stack som en LIFO-datastruktur. I køer vil elementer som legges til først bli fjernet fra køen først. Derfor betraktes køen som en FIFO-datastruktur.
Relatert lenke:
Forskjellen mellom stabel og haug