Structuri dinamice de date în Pascal

Stack este o structură dinamică a datelor în care adăugarea și ștergerea elementelor este disponibilă numai de la un capăt (de la elementul de sus (ultimul)).

Există astfel de abrevieri:







  • LIFO = Last In -> First Out - din limba engleză "Cine a venit ultimul, a ieșit primul"
  • FILO = First In -> Last Out - "primul intrare, ultimul out"

    Structuri dinamice de date în Pascal

    Faze succesive de plasare a numerelor 1, 2, 3 pe stiva

    Următoarele operații sunt efectuate pe stivă:

    • adăugarea unui element nou în stivă;
    • definiția este goală;
    • accesul la ultimul element activ, partea de sus a stivei;
    • Excludeți ultimul element inclus din stivă.

    Crearea unei structuri de site:

    Adăugarea unui element în stivă:

    procedura Push (Var cap: PNode; x: char); var NewNode: PNode; începeți New (NewNode); <выделение памяти> NewNode ^ .date: = x; <запись символа> NewNode ^ .next: = Cap; <сделать первым узлом> Cap: = NewNode; se încheie;

    Gardul elementului de sus:

    Să luăm în considerare o lucrare detaliată cu un teanc pe un exemplu:

    Exemplu: este introdus un șir de caractere în care sunt scrise etichetele din paranteze unghiulare (<>). Determinați dacă parantezele sunt corecte (nu acordați atenție altor simboluri).

    Algoritmul pentru sarcina:

    1. Inițial stiva este goală;
    2. Într-o buclă, uitați-vă la fiecare caracter din șir;
    3. dacă caracterul curent este un suport pentru unghi de deschidere, apoi îl lipiți în partea de sus a stivei;
    4. dacă caracterul curent este unghiul de închidere, verificați elementul de sus al stivei: trebuie să existe un suport pentru unghiul de deschidere (altfel - o eroare);
    5. la sfarsit stiva ar trebui sa devina goala, altfel - o eroare.






    Creați o structură de stivă:

    const MAXSIZE = 50; tip Stack = record <стек рассчитан на 50 символов> tag-uri: matrice [1..MAXSIZE] de char; dimensiune: întreg; <число элементов> se încheie;

    O coadă este o structură dinamică a datelor care are doar două elemente în același timp: prima și ultima. Elementele de adăugare sunt posibile numai de la un capăt (sfârșitul coada de așteptare), iar eliminarea elementelor este numai de la celălalt capăt (începutul coadă).

    Există o abreviere pentru coadă: FIFO = F irst I n - F irst O ut, de la engleză - "Cine a venit primul a venit primul".

    Următoarele operații sunt disponibile pentru coadă:

    • Adăugați un element la sfârșitul coadă (PushTail);
    • eliminați elementul de la începutul coadajului (Pop).

    Lucrul cu o coadă coerentă:
    Aceasta este o metodă destul de simplă, care implică două momente nefavorabile: selectarea în avans a matricei, schimbarea elementelor atunci când se elimină din coadă.

    Structuri dinamice de date în Pascal

    Lucrați cu o coadă utilizând o matrice de apel:

    Structuri dinamice de date în Pascal

    Dacă există un element în coada 1:

    Structuri dinamice de date în Pascal

    Dacă coada este goală:

    Structuri dinamice de date în Pascal

    Dacă coada este plină:

    Structuri dinamice de date în Pascal

    Determinarea dimensiunii matricei (cu coada goală și plină):

    Structuri dinamice de date în Pascal

    Coadă în Pascal (folosind o matrice de apeluri)







    Articole similare

    Trimiteți-le prietenilor: