Steck vs Queue
Steck ir sakārtots saraksts, kurā saraksta vienumu ievietošanu un dzēšanu var veikt tikai vienā galā, ko sauc par augšējo. Šī iemesla dēļ kaudze tiek uzskatīta par pēdējās pirmās kārtas (LIFO) datu struktūru. Rinda ir arī sakārtots saraksts, kurā saraksta vienumu ievietošana tiek veikta vienā galā, ko sauc par aizmuguri, un vienumu dzēšana tiek veikta otrā galā, ko sauc par priekšpusi. Šis ievietošanas un dzēšanas mehānisms padara rindu par FIFO (First in First out) datu struktūru.
Kas ir Stack?
Kā minēts iepriekš, kaudze ir datu struktūra, kurā elementi tiek pievienoti un noņemti tikai no viena gala, ko sauc par augšējo daļu. Stacks pieļauj tikai divas pamata darbības, ko sauc par push un pop. Sūtīšanas darbība pievieno jaunu elementu kaudzes augšdaļai. Pop operācija noņem elementu no kaudzes augšdaļas. Ja kaudze jau ir pilna, kad tiek veikta push darbība, tā tiek uzskatīta par steka pārpildīšanu. Ja uznirstošā darbība tiek veikta jau tukšā stekā, tā tiek uzskatīta par steka nepietiekamību. Tā kā stekā var veikt nelielu darbību skaitu, tā tiek uzskatīta par ierobežotu datu struktūru. Turklāt, ņemot vērā to, kā tiek definētas push un pop darbības, ir skaidrs, ka elementi, kas tika pievienoti pēdējie stekam, vispirms tiek izņemti no steka. Tāpēc steks tiek uzskatīts par LIFO datu struktūru.
Kas ir rinda?
Rindā elementi tiek pievienoti no rindas aizmugures un noņemti no rindas priekšpuses. Tā kā elementi, kas tiek pievienoti pirmie, vispirms tiks noņemti no rindas, tas saglabā FIFO secību. Sakarā ar šo elementu pievienošanas un noņemšanas secību rinda atspoguļo norēķinu rindas ideju. Vispārējās darbības, ko atbalsta rinda, ir rindas un rindas noņemšanas darbības. Rindas izveides darbība pievienos elementu rindas aizmugurē, savukārt rindas noņemšanas darbība noņem elementu no rindas priekšpuses. Parasti rindām nav ierobežojumu elementu skaitam, ko var pievienot rindai, izņemot atmiņas ierobežojumus.
Kāda ir atšķirība starp Stack un Queue?
Lai gan skursteņi un rindas ir sakārtoti saraksti, tiem ir dažas būtiskas atšķirības. Kaudzēs vienumus var pievienot vai dzēst tikai no viena gala, ko sauc par augšējo, savukārt rindās vienumu pievienošana tiek veikta no viena gala, ko sauc par aizmuguri, un vienumu dzēšana tiek veikta no otra gala, ko sauc par priekšpusi. Kaudzē vienumi, kas tiek pievienoti pēdējie, no kaudzes tiks noņemti vispirms. Tāpēc steks tiek uzskatīts par LIFO datu struktūru. Rindās vispirms no rindas tiks noņemti vienumi, kas pievienoti vispirms. Tāpēc rinda tiek uzskatīta par FIFO datu struktūru.
Saistītā saite:
Atšķirība starp kaudzi un kaudzi