Dintre toate de programare, tutoriale și exemple

Capitolul 2. Structuri de date complexe

  • Crearea unei cozi (create_que);
  • comutator element din coadă (push_que);
  • Excluderea elementelor din coadă (popque);
  • coadă goliciune verificare (TestEmptyQue);
  • linie de curățare, fără eliberarea de memorie pentru ea (initque);
  • șterge coadă (delete_que).

Cu ajutorul cozii este convenabil de a modela unele activități de service, cum ar fi acesta poate fi o parte din toate cererile la resursa critica, sau coada de așteptare pentru sarcini de procesare. Pentru a coadă la fel ca stiva și să aplice parametri, cum ar fi dimensiunea coada si capacitatea unui membru coadă.
În practică, folosește o coadă de două tipuri - simple și circulare. Coada este deservită de doi indicatori - capul (P) și rândul său, coada (P2). Șeful indicatorul P identifică cel mai vechi element de coadă coada pointerul - primul slot liber după ultimul element inclus în coada de așteptare. Elementele în sine nu sunt mutați punct de vedere fizic, la rândul său. Schimbarea doar valoarea pointer. Când activați în loc un nou element a intrat în etapa a celulei, așa cum este indicat de P2. excepție Operațiunea implică extragerea unui element din coada celulei indică R. suplimentare de extracție operațiune element de excepție face ajustări pointer P, astfel încât să fie la următorul cel mai vechi element de coadă. Astfel, o coadă simplă coadă indicator arată întotdeauna la celula liberă Ocru-Dee și, mai devreme sau mai târziu va ieși din limita blocului, coada selectată. Și acest lucru se întâmplă în ciuda faptului că, la rândul lor pot fi celule ale sistemului imunitar
(Cell A. Pentru a elimina acest fenomen, toate organizate pe principiul inelului. In ambele metode, Queuing este important să se determine capacitatea sa corectă. Rândul său insuficientă poate duce la un moment dat să se reverse său, care este plină cu pierderea de noi membri care solicită includerea în coada de așteptare.
Pentru a ilustra procedura de organizare și de lucru cu aspectul coadă la un exemplu. Să presupunem că avem un șir de caractere care urmează simulează unele situații de calcul: simboluri de litere înseamnă solicită o resursă și ar trebui să fie în coada de așteptare (având o dimensiune limitată). În cazul în care caracterele se găsesc între numărul de caractere în intervalul de 1-9, aceasta înseamnă că este necesar să se îndepărteze din coadă corespunzătoare valorii numărului de cifre al elementelor. În cazul în care coada este plină, și toate caracterele de numere acolo, atunci există o pierdere de aplicații (simboluri litere). În programul nostru, vom presupune că toate inelul și revărsare în afară de pierderea de elemente noi, conduce la concluzia mesajului corespunzător. Pentru indicii circulare coadă, următoarele valori ale raportul P, și P2: Pj <Р2, Pj = Р2 (пустая очередь), Р,> P2. Memorie pentru coada în problema noastră este alocata dinamic Win32 API înseamnă.
Rețineți că, în funcție de nevoile serviciului disciplina coada poate schimba o anumită sarcină. De exemplu, pentru a stabili că coada de preaplin sunt supuse la o pierdere a cererii vechi (cap coadă) și m. P.

jb ml cmpa1.39h
ja ml
XOR eskh.eskh: elemente udglyaem ale cozii
cl mov, al
subcl, 30h transforma numere de simboluri în echivalentul binar al co2: pop_quechar_que.
jc CYCL, în cazul în care coada este goală
1 m2 oop
jmpcycl ml: adăugați elemente la coada
mov temp, 1
char_que push_que.
JNC CYCL; ycnex, ieșire la ecranul de mesaje de eroare - nicio listă de așteptare
JMP CYCL
; Din cererea de ieșire. scoate blocul de memorie cu coada
char_que delete_que

Așa cum este cazul cu stiva, codul care efectuează coada de lucru, emise sub formă de macro-uri. Programul oferă un unic mesaj de depășire coadă. Pentru a viziona programul în dinamica lucrărilor, efectuați următorii pași.