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:
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:
- Inițial stiva este goală;
- Într-o buclă, uitați-vă la fiecare caracter din șir;
- dacă caracterul curent este un suport pentru unghi de deschidere, apoi îl lipiți în partea de sus a stivei;
- 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);
- 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ă.
Lucrați cu o coadă utilizând o matrice de apel:
Dacă există un element în coada 1:
Dacă coada este goală:
Dacă coada este plină:
Determinarea dimensiunii matricei (cu coada goală și plină):