Queue (istraktura ng data)

[Image:Data Queue.svg|thumb|300px|right|Representasyon ng FIFO Queue]]
Sa agham pangkompyuter, ang queue ay isang istraktura ng data kung saan ang mga elemento ay nakaayos ng sunod sunod at sumusunod sa konsepto ng First in, First out (FIFO). Isa itong halimbawa ng isang linyar na istraktura ng data(linear data structure). Kagaya ng sa Stack, dalawang operasyon ang naglalarawan sa data structure na ito, ang enqueue at dequeue. Ang enqueue ay ang pag dadagdag ng data sa likod(o huli) ng queue samantalang ang dequeue naman ay ang pagtanggal ng data sa harap(o una) ng queue. Tandaan na ang mga operasyon na ito ay sumusunod sa konsepto ng FIFO. Ang ilan pang mga operasyon na maaaring gawin sa isang Queue ang sumusunod:
 pagbibigay ng simulang halaga(initialize) ng queue
 pagsubok kung walang laman ang queue
 pagsubok kung puno na ang queue

Implementasyon
Kagaya ng sa stack, merong dalawang paraan upang maimplementa ang istraktura ng data na sa mga wikang pamprograma. Ito ay ang:
 implementasyong sekwensiyal(sequential)
 implementasyong pinadugtong(linked)

Sekwensiyal(Sequential)
Ito ay ang paggamit ng array upang ikatawan ang queue. Dito, sa hulihahan ng array nagdadagdag ng data at ang pinaka-unang elemento sa array ang tinatanggal. Medyo limitado ang ganitong klase ng implementasyon sapagkat kinakailangang subaybayan ang laki ng array.

Pinagdugtong(Linked)
Kagaya ng sa stack, maaaring ikatawan ang queue sa pamamagitan ng linked list(pinagdugtong na listahan). Ang pagkakaiba lang ng dalawa ay ang operasyon na ginagawa sa listahan (kung saan naglalagay at nagtatanggal ng mga elemento sa listahan). Mas maganda ang ganitong implementasyon ng queue sapagkat maaari kang magdagdag ng magdagdag ng elemento hanggang sa kaya ng memorya dahil itinatago din ang address ng susunod na node kasabay ng data.

Estruktura ng datos