Stack vs Queue
Stack yra užsakytas sąrašas, kuriame sąrašo elementus galima įterpti ir ištrinti tik viename gale, vadinamame viršuje. Dėl šios priežasties krūva laikoma paskutine iš pirmųjų (LIFO) duomenų struktūra. Eilė taip pat yra užsakytas sąrašas, kuriame sąrašo elementai įdedami viename gale, vadinamame gale, o elementai ištrinami kitame gale, vadinamame priekiu. Šis įterpimo ir ištrynimo mechanizmas padaro eilę „pirmoji iš pirmo“ (FIFO) duomenų struktūra.
Kas yra Stack?
Kaip minėta anksčiau, stack yra duomenų struktūra, kurioje elementai pridedami ir pašalinami tik iš vieno galo, vadinamo viršutine. Rinkiniai leidžia atlikti tik dvi pagrindines operacijas, vadinamas push ir pop. Stumiama operacija prideda naują elementą kamino viršuje. Pop operacija pašalina elementą iš krūvos viršaus. Jei krūva jau pilna, kai vykdoma stumdoma operacija, ji laikoma krūvos perpildymu. Jei pop operacija atliekama ant jau tuščios krūvos, ji laikoma krūvos perpildymu. Dėl nedidelio skaičiaus operacijų, kurias būtų galima atlikti su rietuve, ji laikoma ribota duomenų struktūra. Be to, atsižvelgiant į tai, kaip apibrėžiamos „push“ ir „pop“ operacijos, akivaizdu, kad elementai, kurie paskutiniai buvo įtraukti į krūvą, pirmiausia išeina iš krūvos. Todėl krūva laikoma LIFO duomenų struktūra.
Kas yra eilė?
Eilėje elementai pridedami iš eilės galo ir pašalinami iš eilės priekio. Kadangi elementai, kurie pridedami pirmiausia, pirmiausia bus pašalinti iš eilės, jis palaiko FIFO užsakymą. Dėl šios elementų pridėjimo ir pašalinimo tvarkos eilė reiškia kasos eilutės idėją. Bendrosios eilės palaikomos operacijos yra eilės ir eilės operacijos. Operacija prie eilės pridės elementą eilės gale, o eilės operacija pašalins elementą iš eilės priekio. Paprastai eilėse nėra ribojamas elementų, kuriuos galima pridėti prie eilės, skaičius, be atminties apribojimų.
Kuo skiriasi „Stack“ ir „Queue“?
Nors krūvai ir eilės yra rūšiuoti sąrašai, jie turi keletą svarbių skirtumų. Rinkiniuose elementų pridėjimas arba ištrynimas gali būti atliekamas tik iš vieno galo, vadinamo viršutiniu, o eilėse elementai pridedami iš vieno galo, vadinamo užpakaliniu, o elementų trynimas atliekamas iš kito galo, vadinamo priekiu. Rinkinyje elementai, kurie pridedami paskutiniai prie krūvos, pirmiausia bus pašalinti iš krūvos. Todėl krūva laikoma LIFO duomenų struktūra. Eilėse pirmiausia pridedami elementai bus pašalinti iš eilės. Todėl eilė laikoma FIFO duomenų struktūra.
Susijusi nuoroda:
Skirtumas tarp krūvos ir krūvos