Scriind o coadă pentru java, programând pe java, android

Coada în Java. teorie

Structura de date, care este numită în coada de informatică, este oarecum asemănătoare unui teanc, dar în coadă primul element introdus este primul. (FIFO, First-In-First-Out), în timp ce în stiva am văzut că elementul introdus ultima (calea de organizare a datelor LIFO, Last-In-First-Out) a fost eliminat mai întâi.

Coada de așteptare funcționează pe același principiu ca orice coadă din film (persoana care a intrat prima dată în linie, ajunge mai întâi la biroul de bilete și cumpără un bilet). În consecință, cel care devine ultima în coadă, va cumpăra ultimul bilet (sau nu îl va cumpăra deloc dacă toate biletele sunt vândute).

O coadă este aceeași unealtă auxiliară pentru programator ca și stiva. Ele sunt folosite pentru a simula situațiile reale de așteptare pentru clienți în bancă, plecarea aeronavei sau transferul de date prin Internet.

Unde se utilizează coada de așteptare?

În sistemul de operare al calculatorului (și pe Internet), diverse cozi lucrează în mod discret în îndeplinirea îndatoririlor.

De exemplu, într-o coadă de imprimare, documentele așteaptă eliberarea imprimantei. Datele introduse de la tastatură sunt de asemenea stocate în coadă.

Implementarea coadă

Să ilustrăm rândul nostru. Primul element din coadă este Front, elementul care este ultima în coadă este Rear. Baza turnului nostru va fi o matrice clasică.

Scriind o coadă pentru java, programând pe java, android

Două operații de bază cu o coadă sunt: ​​introducerea unui element la sfârșitul coadă și eliminarea elementului de la începutul coadă.

Ilustrație grafică a inserției elementului (introduceți numărul 7):

Scriind o coadă pentru java, programând pe java, android

Scoateți elementul de la începutul coadă (321):

Scriind o coadă pentru java, programând pe java, android

Merită să considerăm un astfel de fenomen ca transferul ciclic. Când introduceți un element nou, marcajul frontal se mută în sus spre indicii mai înalți. Atunci când ștergeți elementele, marcajele din spate se deplasează și ele. Problema este că, chiar dacă există celule goale la începutul matricei, de la care elementele au fost eliminate, noul element nu va fi inserat, deoarece marcatorul posterior nu are unde să meargă mai departe. Să ilustrăm această situație:

Scriind o coadă pentru java, programând pe java, android

Pentru a rezolva această problemă de așteptare în care există celule libere, marcatorii frontală și spate se deplasează la începutul limitei matricei atunci când atinge limita. Această structură de date se numește o coadă circulară (sau un buffer circular).

Scriind o coadă pentru java, programând pe java, android

Exemplu de coadă Java

Implementăm coada de așteptare pe baza matricei. Declarați și inițializați variabilele:

Articole similare